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

ISyncKnowledge

COM
IID615bbb53-c945-4203-bf4b-2cb65919a0aa継承元IUnknown自前メソッド開始 vtbl3

メソッド 24

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

vtbl 3 HRESULT GetOwnerReplicaId(BYTE* pbReplicaId, DWORD* pcbIdSize)
pbReplicaIdBYTE*inoutこのナレッジを所有するレプリカの識別子(レプリカ ID)を受け取るバッファへのポインタである。
pcbIdSizeDWORD*inout入力時は pbReplicaId バッファのバイト数を指定し、出力時は実際に必要/書き込まれたバイト数を受け取るポインタである。
vtbl 4 HRESULT Serialize(BOOL fSerializeReplicaKeyMap, BYTE* pbKnowledge, DWORD* pcbKnowledge)
fSerializeReplicaKeyMapBOOLinレプリカ キー マップも併せてシリアル化するかどうかを指定する真偽値である。
pbKnowledgeBYTE*inoutシリアル化されたナレッジのバイト列を受け取るバッファへのポインタである。NULL を渡すと必要なサイズのみを取得できる。
pcbKnowledgeDWORD*inout入力時は pbKnowledge バッファのバイト数を指定し、出力時は実際に必要なバイト数を受け取るポインタである。
vtbl 5 HRESULT SetLocalTickCount(ULONGLONG ullTickCount)
ullTickCountULONGLONGinこのナレッジに設定するローカルのティック カウント値を指定する。
vtbl 6 HRESULT ContainsChange(BYTE* pbVersionOwnerReplicaId, BYTE* pgidItemId, SYNC_VERSION* pSyncVersion)
pbVersionOwnerReplicaIdBYTE*inバージョンを所有するレプリカの識別子を指すバッファへのポインタである。
pgidItemIdBYTE*in対象アイテムの識別子(アイテム ID)を指すバッファへのポインタである。
pSyncVersionSYNC_VERSION*inナレッジに含まれるかどうかを判定する対象の同期バージョンへのポインタである。
vtbl 7 HRESULT ContainsChangeUnit(BYTE* pbVersionOwnerReplicaId, BYTE* pbItemId, BYTE* pbChangeUnitId, SYNC_VERSION* pSyncVersion)
pbVersionOwnerReplicaIdBYTE*inバージョンを所有するレプリカの識別子を指すバッファへのポインタである。
pbItemIdBYTE*in対象アイテムの識別子を指すバッファへのポインタである。
pbChangeUnitIdBYTE*in対象の変更単位(チェンジ ユニット)の識別子を指すバッファへのポインタである。
pSyncVersionSYNC_VERSION*inナレッジに含まれるかどうかを判定する対象の同期バージョンへのポインタである。
vtbl 8 HRESULT GetScopeVector(GUID* riid, void** ppUnk)
riidGUID*in取得するスコープ ベクター インターフェイスのインターフェイス識別子(IID)へのポインタである。
ppUnkvoid**inout要求した IID のインターフェイス ポインタを受け取る出力ポインタである。
vtbl 9 HRESULT GetReplicaKeyMap(IReplicaKeyMap** ppReplicaKeyMap)
ppReplicaKeyMapIReplicaKeyMap**outこのナレッジに関連付けられたレプリカ キー マップ (IReplicaKeyMap) を受け取る出力ポインタである。
vtbl 10 HRESULT Clone(ISyncKnowledge** ppClonedKnowledge)
ppClonedKnowledgeISyncKnowledge**out複製されたナレッジ オブジェクト (ISyncKnowledge) を受け取る出力ポインタである。
vtbl 11 HRESULT ConvertVersion(ISyncKnowledge* pKnowledgeIn, BYTE* pbCurrentOwnerId, SYNC_VERSION* pVersionIn, BYTE* pbNewOwnerId, DWORD* pcbIdSize, SYNC_VERSION* pVersionOut)
pKnowledgeInISyncKnowledge*inバージョン変換の元となる入力ナレッジへのポインタである。
pbCurrentOwnerIdBYTE*in変換元バージョンの現在の所有者レプリカ識別子を指すバッファへのポインタである。
pVersionInSYNC_VERSION*in変換対象となる入力側の同期バージョンへのポインタである。
pbNewOwnerIdBYTE*inout変換後の新しい所有者レプリカ識別子を指すバッファへのポインタである。
pcbIdSizeDWORD*inout入力時は識別子バッファのバイト数を指定し、出力時は実際のバイト数を受け取るポインタである。
pVersionOutSYNC_VERSION*inout変換後の同期バージョンを受け取るポインタである。
vtbl 12 HRESULT MapRemoteToLocal(ISyncKnowledge* pRemoteKnowledge, ISyncKnowledge** ppMappedKnowledge)
pRemoteKnowledgeISyncKnowledge*inローカル レプリカ キーへ対応付ける元となるリモート ナレッジへのポインタである。
ppMappedKnowledgeISyncKnowledge**outローカルのレプリカ キーへマッピングされたナレッジを受け取る出力ポインタである。
vtbl 13 HRESULT Union(ISyncKnowledge* pKnowledge)
pKnowledgeISyncKnowledge*inこのナレッジに結合(和集合)する対象のナレッジへのポインタである。
vtbl 14 HRESULT ProjectOntoItem(BYTE* pbItemId, ISyncKnowledge** ppKnowledgeOut)
pbItemIdBYTE*in射影の対象とするアイテムの識別子を指すバッファへのポインタである。
ppKnowledgeOutISyncKnowledge**out指定アイテムへ射影されたナレッジを受け取る出力ポインタである。
vtbl 15 HRESULT ProjectOntoChangeUnit(BYTE* pbItemId, BYTE* pbChangeUnitId, ISyncKnowledge** ppKnowledgeOut)
pbItemIdBYTE*in射影の対象とするアイテムの識別子を指すバッファへのポインタである。
pbChangeUnitIdBYTE*in射影の対象とする変更単位の識別子を指すバッファへのポインタである。
ppKnowledgeOutISyncKnowledge**out指定した変更単位へ射影されたナレッジを受け取る出力ポインタである。
vtbl 16 HRESULT ProjectOntoRange(SYNC_RANGE* psrngSyncRange, ISyncKnowledge** ppKnowledgeOut)
psrngSyncRangeSYNC_RANGE*in射影の対象とする同期範囲 (SYNC_RANGE) へのポインタである。
ppKnowledgeOutISyncKnowledge**out指定範囲へ射影されたナレッジを受け取る出力ポインタである。
vtbl 17 HRESULT ExcludeItem(BYTE* pbItemId)
pbItemIdBYTE*inこのナレッジから除外するアイテムの識別子を指すバッファへのポインタである。
vtbl 18 HRESULT ExcludeChangeUnit(BYTE* pbItemId, BYTE* pbChangeUnitId)
pbItemIdBYTE*in除外対象アイテムの識別子を指すバッファへのポインタである。
pbChangeUnitIdBYTE*inこのナレッジから除外する変更単位の識別子を指すバッファへのポインタである。
vtbl 19 HRESULT ContainsKnowledge(ISyncKnowledge* pKnowledge)
pKnowledgeISyncKnowledge*inこのナレッジが包含しているかどうかを判定する対象のナレッジへのポインタである。
vtbl 20 HRESULT FindMinTickCountForReplica(BYTE* pbReplicaId, ULONGLONG* pullReplicaTickCount)
pbReplicaIdBYTE*in対象とするレプリカの識別子を指すバッファへのポインタである。
pullReplicaTickCountULONGLONG*inout指定レプリカに関する最小ティック カウント値を受け取るポインタである。
vtbl 21 HRESULT GetRangeExceptions(GUID* riid, void** ppUnk)
riidGUID*in取得する範囲例外コレクション インターフェイスの IID へのポインタである。
ppUnkvoid**inout要求した IID のインターフェイス ポインタを受け取る出力ポインタである。
vtbl 22 HRESULT GetSingleItemExceptions(GUID* riid, void** ppUnk)
riidGUID*in取得する単一アイテム例外コレクション インターフェイスの IID へのポインタである。
ppUnkvoid**inout要求した IID のインターフェイス ポインタを受け取る出力ポインタである。
vtbl 23 HRESULT GetChangeUnitExceptions(GUID* riid, void** ppUnk)
riidGUID*in取得する変更単位例外コレクション インターフェイスの IID へのポインタである。
ppUnkvoid**inout要求した IID のインターフェイス ポインタを受け取る出力ポインタである。
vtbl 24 HRESULT FindClockVectorForItem(BYTE* pbItemId, GUID* riid, void** ppUnk)
pbItemIdBYTE*inクロック ベクターを検索する対象アイテムの識別子を指すバッファへのポインタである。
riidGUID*in取得するクロック ベクター インターフェイスの IID へのポインタである。
ppUnkvoid**inout要求した IID のインターフェイス ポインタを受け取る出力ポインタである。
vtbl 25 HRESULT FindClockVectorForChangeUnit(BYTE* pbItemId, BYTE* pbChangeUnitId, GUID* riid, void** ppUnk)
pbItemIdBYTE*in対象アイテムの識別子を指すバッファへのポインタである。
pbChangeUnitIdBYTE*inクロック ベクターを検索する対象の変更単位の識別子を指すバッファへのポインタである。
riidGUID*in取得するクロック ベクター インターフェイスの IID へのポインタである。
ppUnkvoid**inout要求した IID のインターフェイス ポインタを受け取る出力ポインタである。
vtbl 26 HRESULT GetVersion(DWORD* pdwVersion)
pdwVersionDWORD*inoutこのナレッジ オブジェクトの形式バージョン番号を受け取るポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_ISyncKnowledge "{615BBB53-C945-4203-BF4B-2CB65919A0AA}"
#usecom global ISyncKnowledge IID_ISyncKnowledge "{}"
#comfunc global ISyncKnowledge_GetOwnerReplicaId             3 var,var
#comfunc global ISyncKnowledge_Serialize                     4 int,var,var
#comfunc global ISyncKnowledge_SetLocalTickCount             5 int64
#comfunc global ISyncKnowledge_ContainsChange                6 var,var,var
#comfunc global ISyncKnowledge_ContainsChangeUnit            7 var,var,var,var
#comfunc global ISyncKnowledge_GetScopeVector                8 var,sptr
#comfunc global ISyncKnowledge_GetReplicaKeyMap              9 sptr
#comfunc global ISyncKnowledge_Clone                         10 sptr
#comfunc global ISyncKnowledge_ConvertVersion                11 sptr,var,var,var,var,var
#comfunc global ISyncKnowledge_MapRemoteToLocal              12 sptr,sptr
#comfunc global ISyncKnowledge_Union                         13 sptr
#comfunc global ISyncKnowledge_ProjectOntoItem               14 var,sptr
#comfunc global ISyncKnowledge_ProjectOntoChangeUnit         15 var,var,sptr
#comfunc global ISyncKnowledge_ProjectOntoRange              16 var,sptr
#comfunc global ISyncKnowledge_ExcludeItem                   17 var
#comfunc global ISyncKnowledge_ExcludeChangeUnit             18 var,var
#comfunc global ISyncKnowledge_ContainsKnowledge             19 sptr
#comfunc global ISyncKnowledge_FindMinTickCountForReplica    20 var,var
#comfunc global ISyncKnowledge_GetRangeExceptions            21 var,sptr
#comfunc global ISyncKnowledge_GetSingleItemExceptions       22 var,sptr
#comfunc global ISyncKnowledge_GetChangeUnitExceptions       23 var,sptr
#comfunc global ISyncKnowledge_FindClockVectorForItem        24 var,var,sptr
#comfunc global ISyncKnowledge_FindClockVectorForChangeUnit  25 var,var,var,sptr
#comfunc global ISyncKnowledge_GetVersion                    26 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。