オブジェクトへのポインタに基づく OBJREF モニカを作成する。
CreateObjrefMoniker punk, ppmk
punk : [var] モニカが表すオブジェクト上の IUnknown インターフェイスへのポインタ。 ppmk : [var] 作成された OBJREF モニカ上の IMoniker インターフェイスへのポインタのアドレス。
(プラグイン / モジュール : ole32.dll)
オブジェクトへのポインタに基づく OBJREF モニカを作成する。 [戻り値] この関数は標準の戻り値 E_OUTOFMEMORY、E_UNEXPECTED、および S_OK を返すことがある。 [備考] クライアントは、サーバーのアドレス空間で動作しているオブジェクトへのマーシャルされたポインタを取得するために OBJREF モニカを使用する。サーバーは通常、CreateObjrefMoniker を呼び出して OBJREF モニカを作成し、続いて IMoniker::GetDisplayName を呼び出し、最後にモニカを解放する。OBJREF モニカの表示名は次の形式となる。 OBJREF:nnnnnnnn ここで nnnnnnnn は任意の長さの base-64 エンコードで、実行中のオブジェクトのマシン位置、プロセスエンドポイント、およびインターフェイスポインタ ID(IPID)をカプセル化したものである。表示名はテキストとしてクライアントに転送できる。たとえば、表示名はクライアントがダウンロードする HTML ページに配置できる。クライアントは表示名を MkParseDisplayName に渡すことができ、これは表示名に基づいて OBJREF モニカを作成する。続いてモニカの IMoniker::BindToObject メソッドを呼び出すことで、サーバー上で実行中のインスタンスへのマーシャルされたポインタが得られる。たとえば、Active Server Page に含まれるサーバー側 COM コンポーネントは、OBJREF モニカを作成し、その表示名を取得して、クライアントのブラウザに送信される HTML 出力に書き込むことができる。クライアント側で実行されるスクリプトは、この表示名を使用して、実行中のオブジェクト自体にアクセスできる。たとえば、クライアント側の Visual Basic スクリプトは、表示名を strMyName という変数に格納し、objMyInstance = GetObject(strMyName) という行を含めることができる。スクリプトエンジンは内部で MkParseDisplayName および IMoniker::BindToObject の呼び出しを行い、以降スクリプトは objMyInstance を使用して実行中のオブジェクトを直接参照できる。
| プラグイン / モジュール | ole32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の ole32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_ole32_gen2.hs |