как рабоать с NetScheduleJobEnum

Тема в разделе "WASM.WIN32", создана пользователем pateykin, 1 окт 2006.

  1. pateykin

    pateykin New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2005
    Сообщения:
    10
    Адрес:
    Kiev
    День добрый, Господа!

    Прошу Вашей помощи вот в каком вопросе: есть сервер под управлением WinNT Server 4.0 SP 6. К нему пишется программа для отслеживания, добавления и удаления назначенных заданий.
    Решил я начать со списка уже имеющихся заданий, почитал MSDN и придумал такой код:

    Код (Text):
    1. #include <vcl.h>
    2. #include <lm.h>
    3. #include <lmat.h>
    4.  
    5. AT_ENUM *pBuffer,*pTemp;
    6. DWORD dwErrorCode,dwTotal,dwResume,dwReaded;
    7. NET_API_STATUS Result;
    8.  
    9.   dwResume=0;
    10.  
    11.   Result=NetScheduleJobEnum(0,(LPBYTE*)&pBuffer,MAX_PREFERRED_LENGTH,
    12.   &dwTotal,&dwReaded,&dwResume);
    13.  
    14.  if(Result!= NERR_Success )
    15.   {
    16.     dwErrorCode=GetLastError();///++++
    17.     Memo1->Lines->Add("Error code= "+IntToStr(dwErrorCode));
    18.     if(pBuffer!=NULL)
    19.       NetApiBufferFree(pBuffer);
    20.     return;
    21.   }    
    22.  
    23.  
    24. if(pBuffer==NULL)
    25.   {
    26.     Memo1->Font->Color=clRed;
    27.     Memo1->Lines->Add("NULL value obtained");
    28.     return;
    29.   }
    30.   int i;
    31.   for ( pTemp = pBuffer, i = 0; i < dwReaded; ++ i, ++ pTemp )
    32.     Memo1->Lines->Add((pTemp->Command));  //????
    33.  
    34.   NetApiBufferFree(pBuffer);
    При анализе результата вызова функции получаю, что dwErrorcode=997(Overlapped I/O operation is in progress.)

    Вопрос номер раз: что значит эта ошибка и как ее придушить, если это возможно.

    При попытке плюнуть на ошибку и продолжить программу дальше в строке
    Memo1->Lines->Add((pTemp->Command)); получаю по роже Access Violation и т.д.

    Вопрос номер два: как вообще правильно работать с функцией NetScheduleJobEnum.

    Заранее всем спасибо за ответы.

    С уважением, pateykin
     
  2. DelExe

    DelExe New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    165
    Это работает, впрочем также как и твой пример.
    hxxp://www.computerbooks.ru/books/Programming/04/index_web/winapi_faq/winapifaq39.html
     
  3. pateykin

    pateykin New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2005
    Сообщения:
    10
    Адрес:
    Kiev
    Перекомпилировал, перекрутил, в результате от Access Violation и ошибки "overlapped I/O" избавился, но назначенные задания упорно не хотят распечатываться, хотя они есть. Может, проблема в том, что я этот код проверяю на Win2k Professional SP4?
    Хотя взял из MSDN пример на эту же тему(работа сназначенными заданиями), только реализованный не через API, а через СОМ, так этот пример работает. Прямо мистика какая-то