IOfflineFilesSetting
COM公式ドキュメント
オフラインファイル サービスの動作を制御する設定を表します。
メソッド 9
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
特定のオフラインファイル設定に関連付けられた名前を取得します。
| ppszName | LPWSTR* | out | オフラインファイル設定の名前を格納した文字列のアドレスを受け取るポインター変数のアドレスです。正常に復帰した場合、呼び出し元は CoTaskMemFree 関数を使用してこのメモリ ブロックを解放する必要があります。 |
戻り値
成功した場合は S_OK を返し、それ以外の場合はエラー値を返します。
特定のオフラインファイル設定のデータ型を取得します。
| pType | OFFLINEFILES_SETTING_VALUE_TYPE* | out | 設定値のデータ型を示す OFFLINEFILES_SETTING_VALUE_TYPE 列挙型の値を受け取ります。 |
戻り値
スコープが正常に返された場合は S_OK、それ以外の場合はエラー値を返します。
特定のオフラインファイル設定に関連付けられた、コンピューター単位またはユーザー単位のプリファレンス(基本設定)を取得します。
| pvarValue | VARIANT* | out | プリファレンスが 1 つ以上の値をサポートしている場合、返される VARIANT オブジェクトにそれらの値が格納されます。プリファレンスが値をサポートしていない場合、返される VARIANT の型は VT_EMPTY になります。 本メソッドは、プリファレンス値を格納する前に VARIANT を初期化します。 |
| dwScope | DWORD | in | どのプリファレンスを取得するかを示します。次のいずれかである必要があります。 OFFLINEFILES_SETTING_SCOPE_USER (0x00000001)ユーザー単位のプリファレンスを取得します。 OFFLINEFILES_SETTING_SCOPE_COMPUTER (0x00000002)コンピューター単位のプリファレンスを取得します。 |
戻り値
プリファレンスの照会に成功した場合は S_OK、それ以外の場合はエラー値を返します。
プリファレンスが現在適用されていない場合は HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) を返します。
この設定に関連付けられたプリファレンスのスコープを示します。
| pdwScope | DWORD* | out | この設定に対するポリシーのサポートされるスコープを受け取ります。このスコープは、次の値のいずれか、または両方になります。 OFFLINEFILES_SETTING_SCOPE_USER (0x00000001)設定はユーザー単位のプリファレンスをサポートします。 OFFLINEFILES_SETTING_SCOPE_COMPUTER (0x00000002)設定はコンピューター単位のプリファレンスをサポートします。 |
戻り値
スコープが正常に返された場合は S_OK、それ以外の場合はエラー値を返します。
解説(Remarks)
これはサポートされるスコープを示すものであり、適用済みのスコープを示すものではない点に注意してください。たとえば、ある設定がユーザー単位とコンピューター単位の両方のプリファレンスを認識していても、実際にはユーザー単位のプリファレンスのみが適用されている場合があります。このような場合でも、本メソッドは OFFLINEFILES_SETTING_SCOPE_USER と OFFLINEFILES_SETTING_SCOPE_COMPUTER の両方を返します。
オフラインファイル設定に関連付けられた、コンピューター単位またはユーザー単位のプリファレンスを設定します。
| pvarValue | VARIANT* | in | プリファレンスに関連付ける値を指定します。 プリファレンスに複数の値が関連付けられる場合、VARIANT の型には VT_ARRAY が含まれ、値は SAFEARRAY に格納されます。 |
| dwScope | DWORD | in | 設定するプリファレンスがユーザー単位かコンピューター単位かを示します。次のいずれかである必要があります。 OFFLINEFILES_SETTING_SCOPE_USER (0x00000001)ユーザー単位のプリファレンスを設定します。 OFFLINEFILES_SETTING_SCOPE_COMPUTER (0x00000002)コンピューター単位のプリファレンスを設定します。 |
戻り値
プリファレンスが正常に設定された場合は S_OK、それ以外の場合はエラー値を返します。
pvtValue で指定されたデータ値のうち 1 つ以上が有効でない場合は HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER) を返します。
呼び出し元がコンピューター単位のプリファレンスを設定しようとしており、かつローカル管理者でない場合は HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED) を返します。
プリファレンスがサポートしていないスコープが指定された場合は HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED) を返します。
解説(Remarks)
プリファレンスがコンピューター単位のものである場合、本メソッドはシステム管理者権限を必要とします。
なお、ポリシーはオフラインファイル API 経由では設定できない点に注意してください。ポリシーはグループ ポリシーの仕組みによってのみ設定できます。
プリファレンス設定を削除します。
| dwScope | DWORD | in | どのプリファレンス設定を削除するかを示します。次のいずれかである必要があります。 OFFLINEFILES_SETTING_SCOPE_USER (0x00000001)ユーザーのプリファレンス設定を削除します。 OFFLINEFILES_SETTING_SCOPE_COMPUTER (0x00000002)コンピューターのプリファレンス設定を削除します。 |
戻り値
プリファレンスが正常に削除された場合は S_OK、それ以外の場合はエラー値を返します。
要求されたプリファレンス設定が現在構成されていない場合は HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) を返します。
呼び出し元がコンピューター単位のプリファレンスを削除しようとしており、かつローカル管理者でない場合は HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED) を返します。
解説(Remarks)
プリファレンスがコンピューター単位のものである場合、本メソッドはシステム管理者権限を必要とします。
特定のオフラインファイル設定に関連付けられたポリシーを取得します。
| pvarValue | VARIANT* | out | ポリシーが 1 つ以上の値をサポートしている場合、返される VARIANT オブジェクトにそれらの値が格納されます。ポリシーが値をサポートしていない場合、返される VARIANT の型は VT_EMPTY になります。 本メソッドは、ポリシー値を格納する前に VARIANT を初期化します。 |
| dwScope | DWORD | in | どのポリシーを取得するかを示します。次のいずれかである必要があります。 注意 すべての設定に関連付けられたポリシーがあるとは限らず、ポリシーがある場合でもコンピューター単位とユーザー単位の両方をサポートしているとは限らない点に注意してください。
OFFLINEFILES_SETTING_SCOPE_USER (0x00000001)ユーザー単位のポリシーを取得します。 OFFLINEFILES_SETTING_SCOPE_COMPUTER (0x00000002)コンピューター単位のポリシーを取得します。 |
戻り値
ポリシーが正常に読み取られた場合は S_OK、それ以外の場合はエラー値を返します。
設定が要求されたポリシーをサポートしていない場合は HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED) を返します。
要求されたポリシーが現在適用されていない場合は HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) を返します。
解説(Remarks)
なお、ポリシーはオフラインファイル API 経由では設定できない点に注意してください。ポリシーはグループ ポリシーの仕組みによってのみ設定できます。オフラインファイル API はポリシー値の照会のみをサポートします。
この設定に関連付けられたポリシーのスコープを取得します。
| pdwScope | DWORD* | out | この設定に対するポリシーのサポートされるスコープを受け取ります。このスコープは、次の値のいずれか、または両方になります。 OFFLINEFILES_SETTING_SCOPE_USER (0x00000001)設定はユーザー単位のポリシーをサポートします。 OFFLINEFILES_SETTING_SCOPE_COMPUTER (0x00000002)設定はコンピューター単位のポリシーをサポートします。 |
戻り値
スコープが正常に返された場合は S_OK、それ以外の場合はエラー値を返します。
解説(Remarks)
これはサポートされるスコープを示すものであり、適用済みのスコープを示すものではない点に注意してください。たとえば、ある設定がユーザー単位とコンピューター単位の両方のポリシーを認識していても、実際にはユーザー単位のポリシーのみが適用されている場合があります。このような場合でも、本 API は OFFLINEFILES_SETTING_SCOPE_USER と OFFLINEFILES_SETTING_SCOPE_COMPUTER の両方を返します。
特定のオフラインファイル設定の値を取得します。
| pvarValue | VARIANT* | out | 設定に関連付けられた値を受け取ります。この値は、システム ポリシー、プリファレンス、およびシステム既定値に基づいて決定されます。 本メソッドは、設定値を格納する前に VARIANT を初期化します。 |
| pbSetByPolicy | BOOL* | out | 値がポリシーによって設定された場合は TRUE、プリファレンスまたは既定値によって決定された場合は FALSE を受け取ります。 |
戻り値
値の照会に成功した場合は S_OK、それ以外の場合はエラー値を返します。
解説(Remarks)
pvarValue パラメーターで返される値は、次のように決定されます。
- コンピューター ポリシーが存在する場合は、それを使用します。
- 存在しない場合で、ユーザー ポリシーが存在するときは、それを使用します。
- 存在しない場合で、コンピューターのプリファレンスが存在するときは、それを使用します。
- 存在しない場合で、ユーザーのプリファレンスが存在するときは、それを使用します。
- いずれも存在しない場合は、システム既定値を使用します。
なお、ポリシーはオフラインファイル API 経由では設定できない点に注意してください。ポリシーはグループ ポリシーの仕組みによってのみ設定できます。オフラインファイル API はポリシー値の照会のみをサポートします。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IOfflineFilesSetting "{D871D3F7-F613-48A1-827E-7A34E560FFF6}" #usecom global IOfflineFilesSetting IID_IOfflineFilesSetting "{FD3659E9-A920-4123-AD64-7FC76C7AACDF}" #comfunc global IOfflineFilesSetting_GetName 3 var #comfunc global IOfflineFilesSetting_GetValueType 4 var #comfunc global IOfflineFilesSetting_GetPreference 5 var,int #comfunc global IOfflineFilesSetting_GetPreferenceScope 6 var #comfunc global IOfflineFilesSetting_SetPreference 7 var,int #comfunc global IOfflineFilesSetting_DeletePreference 8 int #comfunc global IOfflineFilesSetting_GetPolicy 9 var,int #comfunc global IOfflineFilesSetting_GetPolicyScope 10 var #comfunc global IOfflineFilesSetting_GetValue 11 var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IOfflineFilesSetting "{D871D3F7-F613-48A1-827E-7A34E560FFF6}" #usecom global IOfflineFilesSetting IID_IOfflineFilesSetting "{FD3659E9-A920-4123-AD64-7FC76C7AACDF}" #comfunc global IOfflineFilesSetting_GetName 3 sptr #comfunc global IOfflineFilesSetting_GetValueType 4 sptr #comfunc global IOfflineFilesSetting_GetPreference 5 sptr,int #comfunc global IOfflineFilesSetting_GetPreferenceScope 6 sptr #comfunc global IOfflineFilesSetting_SetPreference 7 sptr,int #comfunc global IOfflineFilesSetting_DeletePreference 8 int #comfunc global IOfflineFilesSetting_GetPolicy 9 sptr,int #comfunc global IOfflineFilesSetting_GetPolicyScope 10 sptr #comfunc global IOfflineFilesSetting_GetValue 11 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。