CreateStdDispatch 関数 (oleauto.h)
1 つの関数呼び出しを使用して 、IDispatch インターフェイスの標準実装を作成します。 これにより、オートメーションを使用してオブジェクトを簡単に公開できます。
構文
HRESULT CreateStdDispatch(
IUnknown *punkOuter,
void *pvThis,
ITypeInfo *ptinfo,
IUnknown **ppunkStdDisp
);
パラメーター
punkOuter
オブジェクトの IUnknown 実装。
pvThis
公開するオブジェクト。
ptinfo
公開されているオブジェクトを記述する型情報。
ppunkStdDisp
IDispatch インターフェイス QueryInterface 呼び出しを実装するオブジェクトのプライベート不明。 関数が失敗した場合、このポインターは null です。
戻り値
この関数は、これらの値のいずれかを返すことができます。
リターン コード | 説明 |
---|---|
|
正常終了しました。 |
|
最初の 3 つの引数のいずれかが無効です。 |
|
操作を完了するためのメモリが不足していました。 |
注釈
オブジェクトの IDispatch メンバー関数を実装する代わりに、オブジェクトを作成するときに CreateStdDispatch を使用できます。 ただし、 CreateStdDispatch によって作成される実装には、次の制限があります。
- 1 つの各国語のみをサポートします。
- Invoke から返されるディスパッチ定義例外コードのみをサポート します。
LoadTypeLib、 GetTypeInfoOfGuid、 CreateStdDispatch は、タイプ ライブラリを使用してオブジェクトを公開するために呼び出す必要がある関数の最小セットで構成されます。 LoadTypeLib と GetTypeInfoOfGuid の詳細については、「型の説明インターフェイス」を参照してください。
CreateDispTypeInfo と CreateStdDispatch は、INTERFACEDATA 構造体によって提供される型情報を使用してオブジェクトを公開するために呼び出す必要があるディスパッチ コンポーネントの最小セットで構成されます。
例
次のコードでは、CreateStdDispatch を使用して CCalc クラスの IDispatch インターフェイスを実装します。
CCalc FAR*
CCalc::Create()
{
HRESULT hresult;
CCalc * pcalc;
CArith * parith;
ITypeInfo* ptinfo;
IUnknown * punkStdDisp;
extern INTERFACEDATA NEARDATA g_idataCCalc;
if((pcalc = new FAR CCalc()) == NULL)
return NULL;
pcalc->AddRef();
parith = &(pcalc->m_arith);
// Build type information for the functionality on this object that
// is being exposed for external programmability.
hresult = CreateDispTypeInfo(
&g_idataCCalc, LOCALE_SYSTEM_DEFAULT, &ptinfo);
if(hresult != NOERROR)
goto LError0;
// Create an aggregate with an instance of the default
// implementation of IDispatch that is initialized with
// type information.
hresult = CreateStdDispatch(
pcalc, // Controlling unknown.
parith, // Instance to dispatch on.
ptinfo, // Type information describing the instance.
&punkStdDisp);
ptinfo-&>Release();
if(hresult != NOERROR)
goto LError0;
pcalc->m_punkStdDisp = punkStdDisp;
return pcalc;
LError0:;
pcalc->Release();
return NULL;
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | oleauto.h |
Library | OleAut32.lib |
[DLL] | OleAut32.dll |