Проблема с RegisterDeviceNotification

Тема в разделе "WASM.BEGINNERS", создана пользователем scalter, 29 фев 2008.

  1. scalter

    scalter New Member

    Публикаций:
    0
    Регистрация:
    7 июн 2007
    Сообщения:
    30
    Приветы! В VC++6 никак не получается подключить данную функцию. Что нужно для этого?
    Если у кого есть необходимые для этого файлы, скиньте пож-та. И попутно еще: Есть ли способ еще узнать(из ring3), как сразу же обнаружить вставку карточки в Reader?
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    scalter
    micro SD это карточка?
     
  3. scalter

    scalter New Member

    Публикаций:
    0
    Регистрация:
    7 июн 2007
    Сообщения:
    30
    Конечно, для ридера- плюс переходник.
     
  4. scalter

    scalter New Member

    Публикаций:
    0
    Регистрация:
    7 июн 2007
    Сообщения:
    30
    Конечно, для ридера- плюс переходник.
     
  5. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    scalter
    Попробовал на двух micro SD: kingmax и motorola. Вставляю в переходник, его в RoverBook Navigator V211 на котором установлена wxpprorusp2. Тривиальный код реагирует на появление и удаление носителя.
    Код (Text):
    1. ...
    2.   WNDCLASSEX wc;
    3.   HWND hwnd;
    4. ...
    5.   wc.lpfnWndProc = WndProc;
    6. ...
    7.   RegisterClassEx(&wc);
    8. ...
    9.   hwnd = CreateWindow(..., WS_OVERLAPPEDWINDOW,
    10. ...
    11.  
    12. LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    13. {
    14.   switch (uMsg)
    15.   {
    16.   case WM_CREATE:
    17.     return 0;
    18.  
    19.   case WM_DEVICECHANGE:
    20.     switch(wParam)
    21.     {
    22.     case DBT_DEVICEARRIVAL:
    23.       OutputDebugString(TEXT("DBT_DEVICEARRIVAL"));
    24.       break;
    25.     case DBT_DEVICEREMOVECOMPLETE:
    26.       OutputDebugString(TEXT("DBT_DEVICEREMOVECOMPLETE"));
    27.       break;
    28.     }
    29.     break;
    30.  
    31.   case WM_DESTROY:
    32.     PostQuitMessage(0);
    33.     return 0;
    34.   }
    35.   return DefWindowProc(hwnd, uMsg, wParam, lParam);
    36. }
    37. ...
    Встречал в инете, что этот вариант не работает, только конфигурацию не сообщают (ты, кстати, тоже). Можно посмотреть в сторону SHChangeNotifyRegister.
     
  6. scalter

    scalter New Member

    Публикаций:
    0
    Регистрация:
    7 июн 2007
    Сообщения:
    30
    q_q, тот код, который ты привел, работает только при подкл/откл устройств. При вставке же карточки в реадер, по ходу надо юзать указанную в теме функцию.
     
  7. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    scalter
    Ни чего не понял. Чем отличается мое "появление и удаление носителя" от твоего "подкл/откл устройств"?
     
  8. scalter

    scalter New Member

    Публикаций:
    0
    Регистрация:
    7 июн 2007
    Сообщения:
    30
    q_q - не мог раньше ответить. Все верно, что ты говоришь, я хотел сказать, что мне нужно, если картреадер был уже включен в комп, а карточку всовывают - так вот мне нужно узнать сам вот этот момент именно для карточки.
     
  9. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    scalter
    если картреадер был уже включен в комп, а карточку всовывают
    Ты меня совсем запутал.
    Что такое картреадер? Эту устройство внешнее по отношению к компьютеру? Видел штучку, которая вставляется в usb-порт, а в нее можно вставлять разные карточки - это картреадер? У меня есть дырочка в notebook, переходник и карточка, в этом наборе есть картреадер?
     
  10. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    угу, бывают внешние устройства картридеры. Обычно там несколько разьемов под карточки различных типов.
    видимо ТС имеет ввиду такой тип картридеров.
     
  11. scalter

    scalter New Member

    Публикаций:
    0
    Регистрация:
    7 июн 2007
    Сообщения:
    30
    n0name - точно, про такой тип. Получилось подключить эту функцию, но она почему-то не работает.