ISyncProviderRegistration
COM公式ドキュメント
同期プロバイダーの登録を表します。
メソッド 16
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
同期プロバイダー構成 UI のインメモリインスタンスを作成します。
| pConfigUIConfig | SyncProviderConfigUIConfiguration* | in | 構成 UI の登録情報を格納する SyncProviderConfigUIConfiguration 構造体です。 |
| ppConfigUIInfo | ISyncProviderConfigUIInfo** | out | 構成 UI の UX 要素と、必要な永続化構成情報を格納するために使用する ISyncProviderConfigUIInfo インターフェースへのポインターを返します。 |
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
|
同じ CLSID とコンテンツタイプの組み合わせ、または同じ一意のインスタンス ID が、構成 UI として既に登録されています。 |
解説(Remarks)
ISyncProviderConfigUIInfo::Commit メソッドが呼び出されるまで、構成 UI はシステムに登録されません。このメソッドは、ISyncProviderConfigUIInfo が IPropertyStore から継承したものです。
指定した同期プロバイダー構成 UI の登録を解除し、登録ストアから削除します。
| pguidInstanceId | GUID* | in | 同期プロバイダー構成 UI の一意のインスタンス ID です。 |
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
|
その CLSID とコンテンツタイプの組み合わせは、構成 UI として登録ストアに存在しません。 |
指定した条件に一致する、登録済みのすべての ISyncProviderConfigUIInfo オブジェクトを列挙する IEnumSyncProviderConfigUIInfos 列挙インターフェースを返します。
| pguidContentType | GUID* | inoptional | 指定するコンテンツタイプの LPCGUID です。このパラメーターが NULL の場合、すべてのコンテンツタイプが列挙されます。 |
| dwSupportedArchitecture | DWORD | in | 列挙するプロバイダーのアーキテクチャを表す、次のいずれかのフラグまたはその組み合わせです。SYNC_32_BIT_SUPPORTED を指定した場合は、32 ビットをサポートするプロバイダー、および 32 ビットと 64 ビットの両方をサポートするプロバイダーがすべて列挙されます。SYNC_32_BIT_SUPPORTED | SYNC_64_BIT_SUPPORTED を指定した場合は、32 ビットと 64 ビットの両方をサポートするプロバイダーのみが列挙されます。
|
| ppEnumSyncProviderConfigUIInfos | IEnumSyncProviderConfigUIInfos** | out | IEnumSyncProviderConfigUIInfos への参照です。 |
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
| プロバイダーを登録するための十分なメモリがありませんでした。 |
同期プロバイダーのインメモリインスタンスを作成します。
| pProviderConfiguration | SyncProviderConfiguration* | in | 同期プロバイダーの登録情報を格納する SyncProviderConfiguration 構造体です。 |
| ppProviderInfo | ISyncProviderInfo** | out | 同期プロバイダーに関する情報を取得し、同期プロバイダーの構成を格納するために構成プロパティストアへアクセスするのに使用する ISyncProviderInfo インターフェースへのポインターを返します。 |
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
|
同じ一意のインスタンス ID が、同期プロバイダーとして既に登録されています。 |
解説(Remarks)
ISyncProviderInfo::Commit メソッドが呼び出されるまで、同期プロバイダーはシステムに登録されません。このメソッドは、ISyncProviderInfo が IPropertyStore から継承したものです。この例については、同期プロバイダーの登録の概要を参照してください。
指定した同期プロバイダーの登録を解除し、登録ストアから削除します。
| pguidInstanceId | GUID* | in | 同期プロバイダーの一意のインスタンス ID です。 |
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
|
指定されたインスタンス ID を持つ同期プロバイダーは、現在登録されていません。 |
指定した同期プロバイダーのインスタンス ID に対応する ISyncProviderConfigUIInfo オブジェクトを返します。
| pguidProviderInstanceId | GUID* | in | 同期プロバイダーの一意のインスタンス ID です。 |
| ppProviderConfigUIInfo | ISyncProviderConfigUIInfo** | out | 構成 UI 情報オブジェクトです。 |
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 同期プロバイダーに構成 UI が指定されていませんでした。 | |
| ポインターが無効です。 | |
| 同期プロバイダーを返すための十分なメモリがありませんでした。 | |
|
指定されたインスタンス ID が登録済みの同期プロバイダーと一致しないか、要求された構成 UI が登録されていません。 |
解説(Remarks)
このメソッドは、指定した同期プロバイダーの構成 UI プロパティを取得および設定し、ISyncProviderConfigUI インスタンスを取得するために使用します。
このメソッドは、構成 UI のインスタンス ID は不明だが同期プロバイダーのインスタンス ID が分かっている場合に、ISyncProviderConfigUIInfo オブジェクトを取得するために使用します。ISyncProviderConfigUI のインスタンス ID を使用して ISyncProviderConfigUIInfo オブジェクトへ直接アクセスする場合は、GetSyncProviderConfigUIFromInstanceId メソッドを使用してください。
指定した条件に一致する、登録済みのすべての ISyncProviderInfo オブジェクトを列挙する IEnumSyncProviderInfos 列挙インターフェースを返します。
| pguidContentType | GUID* | inoptional | 指定するコンテンツタイプの LPCGUID です。このパラメーターが NULL の場合、すべてのコンテンツタイプが列挙されます。 |
| dwStateFlagsToFilterMask | DWORD | in | 既存の状態をマスク (保持または除去) するために使用できる同期プロバイダーの状態フラグです。このパラメーターに 0 を設定した場合は、すべての同期プロバイダーの状態が列挙されます。フラグの一覧については、dwStateFlagsToFilter パラメーターの説明を参照してください。 |
| dwStateFlagsToFilter | DWORD | in | 同期プロバイダーの状態を表す、次のいずれかのフラグです。
|
| refProviderClsId | GUID* | in | 特定のプロバイダーの REFCLSID です。このパラメーターに CLSID_NULL を設定した場合は、すべてのプロバイダーが列挙されます。 |
| dwSupportedArchitecture | DWORD | in | 列挙するプロバイダーのアーキテクチャを表す、次のいずれかのフラグまたはその組み合わせです。SYNC_32_BIT_SUPPORTED を指定した場合は、32 ビットをサポートするプロバイダー、および 32 ビットと 64 ビットの両方をサポートするプロバイダーがすべて列挙されます。SYNC_32_BIT_SUPPORTED | SYNC_64_BIT_SUPPORTED を指定した場合は、32 ビットと 64 ビットの両方をサポートするプロバイダーのみが列挙されます。
|
| ppEnumSyncProviderInfos | IEnumSyncProviderInfos** | out | 指定した条件に一致するすべての ISyncProviderInfo オブジェクトを列挙する IEnumSyncProviderInfos 列挙インターフェースです。 |
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
| 列挙インターフェースを返すための十分なメモリがありませんでした。 |
指定した同期プロバイダーのインスタンス ID に対応する ISyncProviderInfo オブジェクトを返します。
| pguidInstanceId | GUID* | in | 同期プロバイダーの一意のインスタンス ID です。 |
| ppProviderInfo | ISyncProviderInfo** | out | 同期プロバイダー情報オブジェクトです。 |
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
|
指定されたインスタンス ID は、登録済みの同期プロバイダーと一致しません。 |
解説(Remarks)
このメソッドが返す ISyncProviderInfo オブジェクトの GetSyncProvider メソッドを呼び出すことで、同期プロバイダーのプロパティを取得および設定し、同期プロバイダーの IRegisteredSyncProvider インスタンスを取得できます。
指定した一意のインスタンス ID に対応する、初期化およびインスタンス化された IRegisteredSyncProvider オブジェクトを返します。
| pguidInstanceId | GUID* | in | IRegisteredSyncProvider オブジェクトの一意のインスタンス ID です。 |
| dwClsContext | DWORD | in | 新しく作成されるオブジェクトを管理するコードが実行されるコンテキストです。サポートされるコンテキストは CLSCTX_INPROC_SERVER のみです。 |
| ppSyncProvider | IRegisteredSyncProvider** | out | 初期化およびインスタンス化された同期プロバイダーオブジェクトです。 |
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
| インスタンス ID が GUID_NULL です。 | |
| 同期プロバイダーを作成するための十分なメモリがありませんでした。 | |
| 同期プロバイダーの CLSID が要求されたコンテキストで登録されていないか、プロバイダーの DLL が登録されていません。 | |
|
指定されたインスタンス ID を持つ同期プロバイダーは登録されていませんでした。 |
解説(Remarks)
指定した一意のインスタンス ID に対応する ISyncProviderConfigUIInfo オブジェクトを返します。
| pguidInstanceId | GUID* | in | ISyncProviderConfigUIInfo オブジェクトの一意のインスタンス ID です。 |
| ppConfigUIInfo | ISyncProviderConfigUIInfo** | out | 構成 UI 情報オブジェクトです。 |
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
| 構成 UI を返すための十分なメモリがありませんでした。 | |
|
指定されたインスタンス ID を持つ構成 UI は登録されていませんでした。 |
解説(Remarks)
このメソッドは、指定した構成 UI オブジェクトの構成 UI プロパティを取得および設定するために使用します。
指定した一意のインスタンス ID に対応する、初期化およびインスタンス化された ISyncProviderConfigUI オブジェクトを返します。
| pguidInstanceId | GUID* | in | ISyncProviderConfigUI オブジェクトの一意のインスタンス ID です。 |
| dwClsContext | DWORD | in | 新しく作成されるオブジェクトを管理するコードが実行されるコンテキストです。サポートされるコンテキストは CLSCTX_INPROC_SERVER のみです。 |
| ppConfigUI | ISyncProviderConfigUI** | out | 初期化およびインスタンス化された構成 UI オブジェクトです。 |
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
| インスタンス ID が GUID_NULL です。 | |
| 構成 UI を作成するための十分なメモリがありませんでした。 | |
| 同期プロバイダーの CLSID が要求されたコンテキストで登録されていないか、構成 UI の DLL が登録されていません。 | |
|
指定されたインスタンス ID を持つ構成 UI は登録されていませんでした。 |
解説(Remarks)
このメソッドは、ISyncProviderConfigUI のインスタンス ID が分かっている場合に、ISyncProviderConfigUIInfo を直接取得するために使用します。同期プロバイダーのインスタンス ID から ISyncProviderConfigUIInfo オブジェクトにアクセスするには、GetSyncProviderConfigUIInfoforProvider メソッドを使用できます。
指定した同期プロバイダーの状態を返します。
| pguidInstanceId | GUID* | in | 同期プロバイダーの一意のインスタンス ID です。 |
| pdwStateFlags | DWORD* | out | 同期プロバイダーの状態を表す、次のいずれかのフラグです。
|
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
|
指定されたインスタンス ID を持つ同期プロバイダーは登録されていませんでした。 |
指定した同期プロバイダーの状態を設定します。
| pguidInstanceId | GUID* | in | 同期プロバイダーの一意のインスタンス ID です。 |
| dwStateFlagsMask | DWORD | in | 既存の状態をマスク (保持または除去) するために使用できる同期プロバイダーの状態フラグです。このパラメーターに 0 を設定した場合は、すべての同期プロバイダーの状態が列挙されます。フラグの一覧については、dwStateFlags パラメーターの説明を参照してください。 |
| dwStateFlags | DWORD | in | 同期プロバイダーの状態を表す、次のいずれかのフラグです。
|
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
|
指定されたインスタンス ID を持つ同期プロバイダーは登録されていませんでした。 |
解説(Remarks)
同期プロバイダーの状態を取得するには、GetSyncProviderState メソッドを呼び出します。
登録ストアに変更が加えられたときに発生する新しい登録イベントの到着通知を受け取るように、ユーザーを登録します。
| phEvent | HANDLE* | inout | 新しい登録イベントの到着を呼び出し元に通知するために使用される 同期イベントの HANDLE です。 注 呼び出し元は、返された HANDLE を Close してはなりません。登録ストアが HANDLE のメモリを管理し、HANDLE を RevokeEvent に渡してイベントが取り消されたとき、またはストアオブジェクトがメモリから解放される前に、これをクローズします。
|
戻り値
解説(Remarks)
このメソッドが返す HANDLE は、GetChange メソッドで使用します。イベントは、RegisterForEvent の呼び出しによって一度だけシグナル状態になります。以降の通知は、ユーザーが GetChange メソッドを呼び出した場合にのみ発生します。
このイベント通知の仕組みから登録を解除するには、RevokeEvent メソッドを呼び出します。
新しい登録イベントの到着通知から、ユーザーの登録を解除します。
| hEvent | HANDLE | in | RegisterForEvent メソッドが返した HANDLE です。 |
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 指定されたイベントは登録されていません。 |
解説(Remarks)
このメソッドは、指定された HANDLE をクローズし、関連するメモリを解放します。
新しい登録イベントを表す ISyncRegistrationChange オブジェクトを取得します。
| hEvent | HANDLE | in | RegisterForEvent メソッドが返した HANDLE です。 |
| ppChange | ISyncRegistrationChange** | out | イベントと、変更された同期プロバイダーまたは同期プロバイダー構成 UI の ID を格納する ISyncRegistrationChange オブジェクトです。 |
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただしこれらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 未処理のイベントはすべて取得されました。 | |
| ポインターが無効です。 |
解説(Remarks)
このメソッドは、渡されたイベントをリセットし、登録ストアで次に変更が発生したときにシグナル状態になるようにします。ストアからすべてのイベントを取得するには、S_FALSE が返され、ppChange が NULL になるまでこのメソッドを呼び出してください。
このメソッドは、指定した HANDLE に対して RegisterForEvent または GetChange のうち最後に呼び出された方の時点以降に発生した変更を返します。つまり、GetChange を呼び出す前に 1 つの項目に対して複数の変更が加えられた場合、それらの変更は GetChange が返す 1 つの変更オブジェクトとして表現されます。呼び出しの間に項目が登録され、さらに登録解除された場合は、変更は返されません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ISyncProviderRegistration "{CB45953B-7624-47BC-A472-EB8CAC6B222E}" #usecom global ISyncProviderRegistration IID_ISyncProviderRegistration "{F82B4EF1-93A9-4DDE-8015-F7950A1A6E31}" #comfunc global ISyncProviderRegistration_CreateSyncProviderConfigUIRegistrationInstance 3 var,sptr #comfunc global ISyncProviderRegistration_UnregisterSyncProviderConfigUI 4 var #comfunc global ISyncProviderRegistration_EnumerateSyncProviderConfigUIs 5 var,int,sptr #comfunc global ISyncProviderRegistration_CreateSyncProviderRegistrationInstance 6 var,sptr #comfunc global ISyncProviderRegistration_UnregisterSyncProvider 7 var #comfunc global ISyncProviderRegistration_GetSyncProviderConfigUIInfoforProvider 8 var,sptr #comfunc global ISyncProviderRegistration_EnumerateSyncProviders 9 var,int,int,var,int,sptr #comfunc global ISyncProviderRegistration_GetSyncProviderInfo 10 var,sptr #comfunc global ISyncProviderRegistration_GetSyncProviderFromInstanceId 11 var,int,sptr #comfunc global ISyncProviderRegistration_GetSyncProviderConfigUIInfo 12 var,sptr #comfunc global ISyncProviderRegistration_GetSyncProviderConfigUIFromInstanceId 13 var,int,sptr #comfunc global ISyncProviderRegistration_GetSyncProviderState 14 var,var #comfunc global ISyncProviderRegistration_SetSyncProviderState 15 var,int,int #comfunc global ISyncProviderRegistration_RegisterForEvent 16 sptr #comfunc global ISyncProviderRegistration_RevokeEvent 17 sptr #comfunc global ISyncProviderRegistration_GetChange 18 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ISyncProviderRegistration "{CB45953B-7624-47BC-A472-EB8CAC6B222E}" #usecom global ISyncProviderRegistration IID_ISyncProviderRegistration "{F82B4EF1-93A9-4DDE-8015-F7950A1A6E31}" #comfunc global ISyncProviderRegistration_CreateSyncProviderConfigUIRegistrationInstance 3 sptr,sptr #comfunc global ISyncProviderRegistration_UnregisterSyncProviderConfigUI 4 sptr #comfunc global ISyncProviderRegistration_EnumerateSyncProviderConfigUIs 5 sptr,int,sptr #comfunc global ISyncProviderRegistration_CreateSyncProviderRegistrationInstance 6 sptr,sptr #comfunc global ISyncProviderRegistration_UnregisterSyncProvider 7 sptr #comfunc global ISyncProviderRegistration_GetSyncProviderConfigUIInfoforProvider 8 sptr,sptr #comfunc global ISyncProviderRegistration_EnumerateSyncProviders 9 sptr,int,int,sptr,int,sptr #comfunc global ISyncProviderRegistration_GetSyncProviderInfo 10 sptr,sptr #comfunc global ISyncProviderRegistration_GetSyncProviderFromInstanceId 11 sptr,int,sptr #comfunc global ISyncProviderRegistration_GetSyncProviderConfigUIInfo 12 sptr,sptr #comfunc global ISyncProviderRegistration_GetSyncProviderConfigUIFromInstanceId 13 sptr,int,sptr #comfunc global ISyncProviderRegistration_GetSyncProviderState 14 sptr,sptr #comfunc global ISyncProviderRegistration_SetSyncProviderState 15 sptr,int,int #comfunc global ISyncProviderRegistration_RegisterForEvent 16 sptr #comfunc global ISyncProviderRegistration_RevokeEvent 17 sptr #comfunc global ISyncProviderRegistration_GetChange 18 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。