Win32 API 日本語リファレンス
ホームSystem.ClrHosting › IHostSyncManager

IHostSyncManager

COM
IID234330c7-5f10-4f20-9615-5122dab7a0ac継承元IUnknown自前メソッド開始 vtbl3

メソッド 9

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT SetCLRSyncManager(ICLRSyncManager* pManager)
pManagerICLRSyncManager*inCLR が提供する同期マネージャを表す ICLRSyncManager インターフェイスへのポインタである。ホストとランタイムが同期情報を交換するために使用する。
vtbl 4 HRESULT CreateCrst(IHostCrst** ppCrst)
ppCrstIHostCrst**out新しく作成されたクリティカルセクションを表す IHostCrst インターフェイスへのポインタを受け取る。
vtbl 5 HRESULT CreateCrstWithSpinCount(DWORD dwSpinCount, IHostCrst** ppCrst)
dwSpinCountDWORDin作成するクリティカルセクションのスピンカウント(ブロック前にスピンする回数)を指定する。
ppCrstIHostCrst**out新しく作成されたクリティカルセクションを表す IHostCrst インターフェイスへのポインタを受け取る。
vtbl 6 HRESULT CreateAutoEvent(IHostAutoEvent** ppEvent)
ppEventIHostAutoEvent**out新しく作成された自動リセットイベントを表す IHostAutoEvent インターフェイスへのポインタを受け取る。
vtbl 7 HRESULT CreateManualEvent(BOOL bInitialState, IHostManualEvent** ppEvent)
bInitialStateBOOLinイベントの初期状態を指定する。TRUE ならシグナル状態、FALSE なら非シグナル状態で作成する。
ppEventIHostManualEvent**out新しく作成された手動リセットイベントを表す IHostManualEvent インターフェイスへのポインタを受け取る。
vtbl 8 HRESULT CreateMonitorEvent(UINT_PTR Cookie, IHostAutoEvent** ppEvent)
CookieUINT_PTRinイベントを関連付けるモニターを識別するクッキー(識別子)を指定する。
ppEventIHostAutoEvent**out新しく作成されたモニターイベントを表す IHostAutoEvent インターフェイスへのポインタを受け取る。
vtbl 9 HRESULT CreateRWLockWriterEvent(UINT_PTR Cookie, IHostAutoEvent** ppEvent)
CookieUINT_PTRinイベントを関連付けるリーダー/ライターロックを識別するクッキー(識別子)を指定する。
ppEventIHostAutoEvent**out新しく作成されたライター用イベントを表す IHostAutoEvent インターフェイスへのポインタを受け取る。
vtbl 10 HRESULT CreateRWLockReaderEvent(BOOL bInitialState, UINT_PTR Cookie, IHostManualEvent** ppEvent)
bInitialStateBOOLinイベントの初期状態を指定する。TRUE ならシグナル状態、FALSE なら非シグナル状態で作成する。
CookieUINT_PTRinイベントを関連付けるリーダー/ライターロックを識別するクッキー(識別子)を指定する。
ppEventIHostManualEvent**out新しく作成されたリーダー用イベントを表す IHostManualEvent インターフェイスへのポインタを受け取る。
vtbl 11 HRESULT CreateSemaphoreA(DWORD dwInitial, DWORD dwMax, IHostSemaphore** ppSemaphore)
dwInitialDWORDinセマフォの初期カウント値を指定する。
dwMaxDWORDinセマフォのカウントの最大値を指定する。
ppSemaphoreIHostSemaphore**out新しく作成されたセマフォを表す IHostSemaphore インターフェイスへのポインタを受け取る。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

#define global IID_IHostSyncManager "{234330C7-5F10-4F20-9615-5122DAB7A0AC}"
#usecom global IHostSyncManager IID_IHostSyncManager "{}"
#comfunc global IHostSyncManager_SetCLRSyncManager        3 sptr
#comfunc global IHostSyncManager_CreateCrst               4 sptr
#comfunc global IHostSyncManager_CreateCrstWithSpinCount  5 int,sptr
#comfunc global IHostSyncManager_CreateAutoEvent          6 sptr
#comfunc global IHostSyncManager_CreateManualEvent        7 int,sptr
#comfunc global IHostSyncManager_CreateMonitorEvent       8 sptr,sptr
#comfunc global IHostSyncManager_CreateRWLockWriterEvent  9 sptr,sptr
#comfunc global IHostSyncManager_CreateRWLockReaderEvent  10 int,sptr,sptr
#comfunc global IHostSyncManager_CreateSemaphoreA         11 int,int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。