2013-07-08 103 views
1

使用Windows傳真服務,我試圖從Windows傳真控制檯取消傳真。根據這worthless documentation我需要傳遞一個值JC_Delete這看起來是一些枚舉,但是,文檔沒有忽略它是什麼或如何得到它。FaxJob.SetStatus方法的枚舉值

我發現另一個MSDN article在最後一句話中指出這些JC值只是用戶定義的常量。最後,我發現了一個forum post指出,這只是一個C++頭文件枚舉和微軟的傢伙表現出由枚舉:

JC_UNKNOWN = 0 JC_DELETE = 1 JC_PAUSE = 2 JC_RESUME = 3 JC_RESTART = JC_RESUME

我只是想,因爲方法調用堵在數字0或1爲int然後我收到一個異常

COM錯誤: 句柄無效。 (來自HRESULT的例外:0x80070006(E_HANDLE))

這是我的一點代碼。我能夠很好地獲得FaxJob對象。它只是調用炸彈的SetStatus()方法。

var job = this.getFaxJobsInQueue().Where(j => j.JobId == JobId).Single(); 
    job.SetStatus(1); 
+0

剛剛意識到我的回答是你已經嘗試過的。什麼炸彈?你有例外嗎? –

+0

Simon,我更新了我的答案,並以粗體顯示異常。當我插入一個int時,如1或0,它被拋出。 – Flea

回答

0

Arg !!發現問題!這非常簡單!我忘了連接到傳真控制檯。顯然這就是the handle is invalid所指示的。我的問題是在返回連接和斷開所有作業的方法中。一旦我有了FaxJob對象,我就想再次連接。這裏是我更新的代碼:

 var job = this.getFaxJobsInQueue().Where(j => j.JobId == JobId).Single(); 
     this.objFaxServer.Connect(faxServerConnectionString); 
     job.SetStatus(1); 
     this.objFaxServer.Disconnect();