1

Windows FAX サービスを使用して、Windows FAX コンソールから FAX をキャンセルしようとしています。この価値のないドキュメンテーションJC_Deleteによると、何らかの列挙であると思われる値を渡す必要がありますが、ドキュメンテーションはそれが何であるか、またはそれを取得する方法を省略していません。

これらの値はユーザーが定義する単なる定数であると最後の文で述べている別のMSDN 記事を見つけました。JC最後に、これは単なる C++ ヘッダー ファイルの列挙であると述べているフォーラムの投稿を見つけました。Microsoft の担当者は、以下で構成される列挙を示しました。

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

メソッドが int を呼び出すため、0 または 1 の数字を差し込もうとしたところ、例外が発生しました。

COM エラー: ハンドルが無効です。(HRESULT からの例外: 0x80070006 (E_HANDLE))

これが私のコードです。FaxJob オブジェクトを問題なく取得できました。爆撃する SetStatus() メソッドを呼び出すだけです。

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

1 に答える 1

0

アーグ!! 問題を発見!とても簡単でした!FAX コンソールに接続するのを忘れていました。どうやらそれを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();
于 2013-07-09T17:26:42.447 に答える