CoGetApartmentType 関数 (combaseapi.h)
現在のアパートメント型と型修飾子を返します。
構文
HRESULT CoGetApartmentType(
[out] APTTYPE *pAptType,
[out] APTTYPEQUALIFIER *pAptQualifier
);
パラメーター
[out] pAptType
現在のアパートメントの型を指定する APTTYPE 列挙値。
[out] pAptQualifier
現在のアパートメントの型修飾子を指定する APTTYPEQUALIFIER 列挙値。
戻り値
呼び出しが成功した場合S_OKを返します。 それ以外の場合は、次のいずれかのエラー コードが返されます。
リターン コード | 説明 |
---|---|
|
呼び出しは、現在のアパートメント型と型修飾子のクエリを正常に実行できませんでした。 |
|
無効なパラメーター値が関数に指定されました。 具体的には、一方または両方のパラメーターが呼び出し元によって NULL に設定されました。 |
|
CoGetApartmentType を呼び出す前に、このスレッドで CoInitialize または CoInitializeEx が呼び出されませんでした。 |
解説
Windows 7 より前の Windows プラットフォームでは、アパートメントの種類を照会するには、スレッドで次のアクションを実行する必要があります。
- CoGetContextToken を呼び出して、現在のコンテキスト トークンを取得します。
- コンテキスト トークンを IUnknown* ポインターにキャストします。
- そのポインターで QueryInterface メソッドを呼び出して 、IComThreadingInfo インターフェイスを 取得します。
- 現在のアパートメントの種類を取得するには、IComThreadingInfo インターフェイスの GetCurrentApartmentType メソッドを呼び出します。
マルチスレッド シナリオでは、上記の一連の操作を実行するときに、プロセス内でアクセス違反を引き起こす可能性がある競合状態があります。 CoGetApartmentType 関数は、アクセス違反が発生する可能性がないため、推奨されます。
要件
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | combaseapi.h (Objbase.h を含む) |
Library | Ole32.lib |
[DLL] | Ole32.dll |