APPC Verb と Windows の拡張機能

このトピックでは、Host Integration Server でサポートされている APPC 動詞と Windows 拡張機能について説明します。

APPC 動詞

次の APPC 動詞の説明には重要な機能が含まれており、このバージョンの Windows APPC を使用する前に読む必要があります。

ALLOCATE または MC_ALLOCATE
呼び出し元トランザクション・プログラム (TP) によって発行されたこの動詞は、ローカル論理ユニット (LU) とパートナー LU の間にセッションを割り振り、(RECEIVE_ALLOCATEと組み合わせて) 呼び出し元 TP と呼び出し可能 TP の間の会話を確立します。 この動詞が正常に実行されると、APPC は会話識別子 (conv_id) を生成します。 conv_idは、他のすべての APPC 会話動詞に必要なパラメーターです。

TP、5250 エミュレーター、または APPC アプリケーションを使用するユーザーまたはグループの場合は、既定のローカル RU とリモート LU を割り当てることができます。 この場合、LU 別名のフィールドは空白または null のままにし、ユーザーまたはグループ・メンバーが APPC プログラムを開始すると、デフォルトの LU にアクセスします。 既定の LU の使用の詳細については、Microsoft Host Integration Server ヘルプのネットワーク統合に関するセクションを参照してください。

RECEIVE_ALLOCATE
ALLOCATE または MC_ALLOCATEを発行した呼び出し側 TP との会話を開始する準備ができていることを確認するために、呼び出し可能 TP によって発行されます。 これは、呼び出し可能 TP によって発行される最初の APPC 動詞である必要があります。 初期状態は RESET です。 動詞が正常に実行されると (primary_rc がAP_OK)、状態は RECEIVE に変わります。

RECEIVE_AND_POSTまたはMC_RECEIVE_AND_POST
アプリケーション データと状態情報を非同期的に受信します。 これにより、ローカル TP は、ローカル LU にデータがまだ到着している間に処理を続行できます。 RECEIVE_AND_POSTとMC_RECEIVE_AND_POSTは、Windows オペレーティング システムでのみサポートされます。

非同期RECEIVE_AND_POSTまたはMC_RECEIVE_AND_POSTは未処理ですが、次の動詞を発行できます。

REQUEST_TO_SENDまたはMC_REQUEST_TO_SEND

GET_TYPE

GET_ATTRIBUTESまたはMC_GET_ATTRIBUTES

TEST_RTSまたはMC_TEST_RTS

DEALLOCATE

SEND_ERRORまたはMC_SEND_ERROR

TP_ENDED

RECEIVE_AND_WAITまたはMC_RECEIVE_AND_WAIT
パートナー TP から現在使用できるデータを受け取ります。 現在使用可能なデータがない場合、ローカル TP はデータの到着を待機します。

RECEIVE_AND_WAITとMC_RECEIVE_AND_WAITは、RECEIVE_AND_POSTやMC_RECEIVE_AND_POSTのように動作するように変更されています。 非同期RECEIVE_AND_WAITまたはMC_RECEIVE_AND_WAITは未処理ですが、次の動詞を発行できます。

REQUEST_TO_SENDまたはMC_REQUEST_TO_SEND

GET_TYPE

GET_ATTRIBUTESまたはMC_GET_ATTRIBUTES

TEST_RTSまたはMC_TEST_RTS

DEALLOCATE

SEND_ERRORまたはMC_SEND_ERROR

TP_ENDED

TP_STARTED
呼び出し元の TP によって発行されたこの動詞は、TP が開始されていることを APPC に通知します。 TP、5250 エミュレーター、または APPC アプリケーションを使用するユーザーまたはグループの場合は、既定のローカルとリモートの APPC LU を割り当てることができます。 これらの既定の LU は、ユーザーまたはグループ メンバーが APPC プログラム (TP、5250 エミュレーター、または APPC アプリケーション) を起動し、プログラムが LU エイリアスを指定しない場合にアクセスされます。 既定の LU の使用の詳細については、「ネットワーク統合のヘルプ」を参照してください。

制限

ホスト統合サーバーでは、接続ごとに 1 つの未処理の Windows APPC 非同期呼び出しと、スレッドごとに 1 つのブロック動詞が許可されます。 次に例を示します。

void ProcessVerbCompletion (WPARAM wParam, LPARAM lParam)  
{     
    int i;  
    for (i = 0; i < nPendingVerbs; i++)  
        if (pPendingVerbs[i].hAsync == wParam)  
            ProcessVCB( (LPVCB) lParam);  
}    . . .  
LRESULT CALLBACK SampleWndProc ( ... )  
{  
    if (msg == uAsyncAPPC) {  
        ProcessVerbCompletion(wParam; lParam);  
    }  
        else switch (msg) {  
        case WM_USER:  
            if (hAsync = WinAsyncAPPC(hwnd, &vcb))  
               pPendingVerbs [nPendingVerbs++].hAsync = hAsync;  
            break;  
    }  
}  
WinMain ( ... )  
{  
    if ( ( WinAPPCStartup ( ...) = = FALSE ) {  
    return FALSE ;  
    }  
    uAsyncAPPC = RegisterWindowsMessage ("WinAsyncAPPC") ;  
    while (GetMessage ( ...)  )  {  
    ...  
    WinAPPCCleanup ( ... )  
}  

Note

未処理の非同期呼び出しの 1 つのルールの例外は、RECEIVE_AND_POST、MC_RECEIVE_AND_POST、RECEIVE_AND_WAIT、およびMC_RECEIVE_AND_WAITです。 これらの動詞は優れていますが、特定の他の動詞も呼び出すことができます。