WinCPICStartup
WinCPICStartup 関数を使用すると、アプリケーションで必要な Microsoft Windows Common Programming Interface (CPI-C) のバージョンを指定し、特定の Windows CPI-C 実装の詳細を取得できます。 この関数は、それ以上の Windows CPI-C 呼び出しを発行する前に、アプリケーションが Windows CPI-C 実装に登録するために呼び出す必要があります。
構文
INT WINAPI WinCPICStartup(
WORDwVersionRequired,
LPWCPICDATAlpwcpicdata);
パラメーター
wVersionRequired
必要な Windows CPI-C サポートのバージョンを指定します。 上位バイトはマイナー バージョン (リビジョン) 番号を指定します。 下位バイトはメジャー バージョン番号を指定します。
lpwcpicdata
CPI-C データ構造へのポインター。 CPICDATA 構造体は次のように定義されます。
typedef struct {
....WORD wVersion;
char szDescription[WCPICDESCRIPTION_LEN+1];
} CPICDATA, FAR * LPWCPICDATA;
WCPIDESCRIPTION は 127 と定義され、構造体メンバーは次のようになります。
wVersion
サポートされている Windows CPI-C のバージョン。 上位バイトはマイナー バージョン (リビジョン) 番号を指定します。 下位バイトはメジャー バージョン番号を指定します。
szDescription
サポートされている CPI-C バージョンを説明する説明文字列。
戻り値
戻り値は、アプリケーションが正常に登録されたかどうか、および Windows CPI-C 実装が指定されたバージョン番号をサポートできるかどうかを指定します。 値が 0 の場合は、正常に登録されました。 それ以外の場合、戻り値は次のいずれかになります。
WCPICSYSNOTRERADY
基になるネットワーク システムは、ネットワーク通信の準備ができていません。
WCPICVERNOTSUPPORTED
要求された Windows CPI-C サポートのバージョンは、この特定の Windows CPI-C 実装では提供されません。
WCPICINVALID
アプリケーションで指定された Windows CPI-C バージョンは、このダイナミック リンク ライブラリ (DLL) ではサポートされていません。
注釈
Windows CPI-C バージョン 1.0 と機能の違いがある可能性のある将来の Windows CPI-C の実装とアプリケーションをサポートするために、 WinCPICStartup でネゴシエーションが行われます。 アプリケーションは、使用できる Windows CPI-C バージョンを WinCPICStartup に渡します。 このバージョンが Windows CPI-C DLL でサポートされている最低バージョンより低い場合、DLL はアプリケーションをサポートできず、 WinCPICStartup 呼び出しは失敗します。 ただし、バージョンが低くない場合、呼び出しは成功し、DLL でサポートされている Windows CPI-C の最高バージョンを返します。 このバージョンがアプリケーションでサポートされている最低バージョンよりも低い場合、アプリケーションは初期化に失敗するか、システム上の別の Windows CPI-C DLL を見つけようとします。
このネゴシエーションにより、Windows CPI-C DLL と Windows CPI-C アプリケーションの両方で、さまざまな Windows CPI-C バージョンをサポートできます。 バージョンに重複がある場合、アプリケーションは DLL を正常に使用できます。 次の表は、 WinCPICStartup がさまざまなアプリケーションと DLL のバージョンと組み合わせて動作する方法を示しています。
アプリケーションのバージョン | DLL のバージョン | WinCPICStartup へ | WinCPICStartup から | 結果 |
---|---|---|---|---|
1.0 | 1.0 | 1.0 | 1.0 | 1.0 を使用する |
1.0、2.0 | 1.0 | 2.0 | 1.0 | 1.0 を使用する |
1.0 | 1.0、2.0 | 1.0 | 2.0 | 1.0 を使用する |
1.0 | 2.0, 3.0 | 1.0 | WCPICINVALID | 失敗 |
2.0, 3.0 | 1.0 | 3.0 | 1.0 | アプリが失敗する |
1.0, 2.0, 3.0 | 1.0, 2.0, 3.0 | 3.0 | 3.0 | 3.0 を使用する |
実際の Windows CPI-C 実装の詳細については、次のように定義されている WHLLDATA 構造体で説明されています。
typedef struct tagWCPICDATA { WORD wVersion;
char szDescription[WHLLDESCRIPTION_LEN+1];
} WCPICDATA, FAR *LPWCPICDATA;
最後の Windows CPI-C 呼び出しを行った後、アプリケーションは WinCPICCleanupルーチンを呼び出す必要があります。
各 Windows CPI-C 実装では、他の Windows CPI-C 呼び出しを発行する前に WinCPICStartup 呼び出しを行う必要があります。