ISyncMgrEvent
COM公式ドキュメント
イベントストアからデータを取得するメソッドを公開します。イベントストアを使用すると、Sync Center はストア内のすべてのイベントの列挙子を取得できるほか、個々のイベントを取得することもできます。
メソッド 11
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
イベント ID を取得します。
| pguidEventID | GUID* | out | このメソッドから制御が戻ると、イベント ID へのポインターが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
イベントがログに記録された対象のハンドラーの ID を取得します。
| ppszHandlerID | LPWSTR* | out | このメソッドから制御が戻ると、Unicode 文字列としてのハンドラー ID へのポインターが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
ハンドラー ID は、終端の null 文字を含めて最大で MAX_SYNCMGR_ID の長さを持つことができます。イベント側で CoTaskMemAlloc を使用して文字列バッファーを割り当てることが期待されており、Sync Center はそれを使用して文字列バッファーを解放します。
イベントがログに記録された対象の項目の ID を取得します。
| ppszItemID | LPWSTR* | out | Unicode 文字列としての項目 ID へのポインターが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
項目 ID は、終端の null 文字を含めて最大で MAX_SYNCMGR_ID の長さを持つことができます。イベント側で CoTaskMemAlloc を使用して文字列バッファーを割り当てることが期待されており、Sync Center はそれを使用して文字列バッファーを解放します。
イベントのログレベルを取得します。
| pnLevel | SYNCMGR_EVENT_LEVEL* | out | このメソッドから制御が戻ると、ログレベルを示す SYNCMGR_EVENT_LEVEL 列挙型のメンバーへのポインターが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
イベントフラグを取得します。
| pnFlags | SYNCMGR_EVENT_FLAGS* | out | このメソッドから制御が戻ると、SYNCMGR_EVENT_FLAGS 列挙型のメンバーから取得された、現在設定されているフラグを示す値へのポインターが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
作成時刻を取得します。
| pfCreationTime | FILETIME* | out | このメソッドから制御が戻ると、FILETIME 構造体としての作成時刻へのポインターが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
イベントの名前を取得します。この文字列は、イベントの単純な名前または短い要約を表します。フォルダーおよびイベントのプロパティシートに表示されます。
| ppszName | LPWSTR* | out | このメソッドから制御が戻ると、Unicode 文字列としての名前へのポインターが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
イベント側で CoTaskMemAlloc を使用して文字列バッファーを割り当てることが期待されており、Sync Center はそれを使用して文字列バッファーを解放します。
イベントの説明を取得します。
| ppszDescription | LPWSTR* | out | このメソッドから制御が戻ると、説明を格納した null 終端の Unicode バッファーへのポインターのアドレスが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
イベントのホットリンクのテキストを取得します。
| ppszLinkText | LPWSTR* | out | このメソッドから制御が戻ると、Unicode 文字列としてのリンクテキストへのポインターが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
イベント側で CoTaskMemAlloc を使用して文字列バッファーを割り当てることが期待されており、Sync Center はそれを使用して文字列バッファーを解放します。
イベントのホットリンクの参照を取得します。ホットリンクは表示されるプロパティであり、ユーザーがクリックするとアクションを実行できます。これにより、ハンドラーはフォルダー内でユーザーが一目で確認できる利用可能なアクションを提示できます。
| ppszLinkReference | LPWSTR* | out | このメソッドから制御が戻ると、Unicode 文字列としてのリンク参照へのポインターが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
リンク参照は、ユーザーがホットリンクをクリックしたときに実行されます。ユーザーがリンクをクリックすると、Sync Center は GetObject を呼び出し、ISyncMgrEventLinkUIOperation インターフェイスに対する SYNCMGR_OBJECTID_EventLinkClick オブジェクトを要求します。このオブジェクトは、Run メソッドで使用できる ISyncMgrEvent インターフェイスポインターで初期化されます。ハンドラーがこのオブジェクト ID をサポートしていない場合、Sync Center はリンク参照を ShellExecute に渡します。
イベント側で CoTaskMemAlloc を使用して文字列バッファーを割り当てることが期待されており、Sync Center はそれを使用して文字列バッファーを解放します。
ハンドラーがプロパティの表示やコンテキストメニューアクションの実行に使用できるコンテキストオブジェクトを取得します。
| ppszContext | LPWSTR* | out | このメソッドから制御が戻ると、Unicode 文字列としてのコンテキストへのポインターが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
ハンドラー側で CoTaskMemAlloc を使用してバッファーを割り当てることが期待されており、Sync Center はそれを使用して文字列バッファーを解放します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ISyncMgrEvent "{FEE0EF8B-46BD-4DB4-B7E6-FF2C687313BC}" #usecom global ISyncMgrEvent IID_ISyncMgrEvent "{}" #comfunc global ISyncMgrEvent_GetEventID 3 var #comfunc global ISyncMgrEvent_GetHandlerID 4 var #comfunc global ISyncMgrEvent_GetItemID 5 var #comfunc global ISyncMgrEvent_GetLevel 6 var #comfunc global ISyncMgrEvent_GetFlags 7 var #comfunc global ISyncMgrEvent_GetTime 8 var #comfunc global ISyncMgrEvent_GetName 9 var #comfunc global ISyncMgrEvent_GetDescription 10 var #comfunc global ISyncMgrEvent_GetLinkText 11 var #comfunc global ISyncMgrEvent_GetLinkReference 12 var #comfunc global ISyncMgrEvent_GetContext 13 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ISyncMgrEvent "{FEE0EF8B-46BD-4DB4-B7E6-FF2C687313BC}" #usecom global ISyncMgrEvent IID_ISyncMgrEvent "{}" #comfunc global ISyncMgrEvent_GetEventID 3 sptr #comfunc global ISyncMgrEvent_GetHandlerID 4 sptr #comfunc global ISyncMgrEvent_GetItemID 5 sptr #comfunc global ISyncMgrEvent_GetLevel 6 sptr #comfunc global ISyncMgrEvent_GetFlags 7 sptr #comfunc global ISyncMgrEvent_GetTime 8 sptr #comfunc global ISyncMgrEvent_GetName 9 sptr #comfunc global ISyncMgrEvent_GetDescription 10 sptr #comfunc global ISyncMgrEvent_GetLinkText 11 sptr #comfunc global ISyncMgrEvent_GetLinkReference 12 sptr #comfunc global ISyncMgrEvent_GetContext 13 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。