通信用の共通プログラミング インターフェイス (CPI-C) 呼び出しと Windows 拡張機能は特に重要です。 Host Integration Server を使用する前に、それらを確認する必要があります。
注
呼び出しの名前は仮名です。 実際の C 関数名は、仮名の後にかっこで囲まれて表示されます。 たとえば、 Set_Processing_Mode は呼び出しの仮名です。 実際の関数名は cmspm です。
Set_Processing_Mode( cmspm)
要求した操作が完了したときに後続の呼び出しが返されるか (ブロックされていない) 操作が開始された直後 (非ブロッキング) かを会話に指定します。 プログラムは、Wait_For_Conversationを発行するか、 Specify_Windows_Handle の hwndNotify によって識別された WndProc に送信された Windows メッセージを介して、非ブロッキング呼び出 しの完了を通知します。 スレッドの処理モードが設定されている場合は、モードが再び設定されるまで、会話の後続のすべての呼び出しに適用されます。
Specify_Windows_Handle( xchwnd)
非ブロッキング モードでの操作の完了時にメッセージが送信されるウィンドウ ハンドルを設定します。
Wait_For_Conversation( cmwait)
処理モードの会話特性が CM_NON_BLOCKING に設定され、 return_code パラメーターで CM_OPERATION_INCOMPLETEが返されたときに開始された操作の完了を待機します。 Microsoft Windows 用のバックグラウンド スレッドまたはシングル スレッド アプリケーションを実行する場合は、 Wait_For_Conversation を使用します。 これは、古いバージョンの Host Integration Server と SNA Server からコードを移植する場合に発生する可能性が最も高くなります。
Important
アプリケーションは、Set_Processing_Modeを呼び出すことによって処理モード を設定できます。 ウィンドウ ハンドルが NULL に設定されているか、この呼び出しが発行されない場合、アプリケーションは未処理 の操作が 完了したときに通知を受け取るためにWait_For_Conversationを呼び出す必要があります。
非同期操作が完了すると、アプリケーション ウィンドウ hwndNotify は、 RegisterWindowMessage によって返されたメッセージを、入力文字列として "WinAsyncCPIC" と共に受信します。 wParam 値には、完了している操作からの会話リターン コードが含まれています。 その値は、最初に発行された操作によって異なります。 lParam 引数には、元の関数呼び出しで指定された会話識別子へのCM_PTRが含まれています。
WinCPICCleanup
Windows CPI-C 実装からアプリケーションを終了および登録解除します。
Important
Windows CPI-C の実装からアプリケーションの登録を解除するには、完了したら、アプリケーションによってこの関数を呼び出す必要があります。
WinCPICExtractEvent
アプリケーションが CPI-C の会話に使用されているイベント ハンドルを決定するためのメソッドを提供します。
WinCPICIsBlocking
前のブロック呼び出しの完了を待機している間にタスクが実行されているかどうかを判断します。 これは、Windows バージョン 3 の場合に使用されました。x は、Windows の続行を許可している間に PeekMessageLoop に入りました。 ブロック関数に対して発行された呼び出しはブロックされているかのようにアプリケーションに表示されますが、Windows CPI-C ダイナミック リンク ライブラリ (DLL) は、他のアプリケーションの実行を許可するためにプロセッサを放棄する必要があります。 これは、受信したメッセージに応じて、ブロック呼び出しを発行したアプリケーションが再入力される可能性があることを意味します。 この例では、 WinCPICIsBlocking を 使用して、未処理のブロック呼び出しが完了するのを待っている間に、アプリケーション タスクが現在再入力されているかどうかを判断できます。
この拡張機能は、Windows Specify_Processing_Mode 関数のCM_BLOCKING特性を使用するように記述されたアプリケーションにヘルプを提供することを目的としています。 WinCPICIsBlocking は、Windows API の InSendMessage と同じ目的を果たします。
もともと Windows バージョン 3 を対象とした古いアプリケーション。x と、複数の会話をサポートする場合は、複数の未処理の操作を同時にサポートできるように 、Specify_Processing_Mode でCM_NONBLOCKINGを指定する必要があります。 アプリケーションは、すべての環境で会話ごとに 1 つの未処理の操作に制限されます。
注
Windows CPI-C では、スレッドごとに複数の未処理のブロック呼び出しが禁止されています。
WinCPICSetBlockingHook
Windows CPI-C 実装で、新しい関数を使用して CPI-C 関数呼び出しをブロックできるようにします。 ブロック呼び出しは、非同期呼び出しを使用しない場合にのみ適用されます。 関数をブロックする必要がある場合は、元の要求が完了するまでブロック呼び出しが繰り返し呼び出されます。 これにより、元のアプリケーションが呼び出しが返されるのを待機している間、Windows の実行を続行できます。 ブロック呼び出しの内部では、アプリケーションを再入力できることに注意してください。
WinCPICSetBlockingHook は Windows バージョン 3 で使用されました。システム の残りの部分をブロックせずにブロック呼び出しを行うために PeekMessageLoop に入った x アプリケーション。
注
既定では、Windows Server は PeekMessageLoop に入りません。 代わりに、呼び出しが完了するのを待機しているイベントをブロックします。 Windows 用 WinCPICSetBlockingHook を使用する必要があるのは、Windows 用のシングル スレッド アプリケーションが共通のソース コードを共有する場合だけです。 この場合、この呼び出しを明示的に行う必要があります。 この呼び出し を WinCPICIsBlocking および WinCPICUnhookBlockingHook と比較します。
WinCPICSetEvent
Win32 イベント ハンドルを動詞の完了に関連付けます。
WinCPICStartup
アプリケーションで必要な Windows CPI-C のバージョンを指定し、特定の CPI-C 実装の詳細を取得できるようにします。
Important
アプリケーションは、Windows CPI-C 呼び出しを発行する前に、この関数を呼び出して Windows CPI-C 実装に登録する必要があります。
WinCPICUnhookBlockingHook
インストールされている以前のブロッキング フックを削除し、既定のブロッキング メカニズムを再インストールします。