1

リモート スプーラでジョブを監視しようとしています。これには以下のコードを使用しています。実際に何かを印刷すると、MyChangeCallback が呼び出され、正常に処理を進めることができます。ただし、印刷ダイアログの「ファイルに出力」ボックスにチェックマークを付けると、コールバックは呼び出されません。「ファイルに出力」が選択されていても機能させる方法はありますか?

// Callback definition

VOID MyChangeCallback(PVOID lpParameter, BOOLEAN TimerOrWaitFired)
{
   DEBUG("Change notification received");

   HANDLE hChange = *((HANDLE*)lpParameter));

   // Call FindNextPrinterChangeNotification with hChange
   ...
}


int main() {

    HANDLE hPrinter = 0;

    OpenPrinter(L"\\MyPrintServer\\SharedPrinter", &hPrinter, NULL);

    HANDLE hChange = FindFirstPrinterChangeNotification(   hPrinter,  
                                                           PRINTER_CHANGE_ALL, 
                                                           0, 
                                                           NULL);

    HANDLE hNewWaitObj = 0;

    RegisterWaitForSingleObject(    &hNewWait, 
                                    hChange, 
                                    MyChangeCallback,  
                                    (PVOID)&hChange, 
                                    INFINITE, 
                                    WT_EXECUTEDEFAULT);

    // Wait for events

    Sleep(INFINITE);
}
4

0 に答える 0