Win32 API 日本語リファレンス
ホームStorage.OfflineFiles › IOfflineFilesSetting

IOfflineFilesSetting

COM
IIDd871d3f7-f613-48a1-827e-7a34e560fff6継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

オフラインファイル サービスの動作を制御する設定を表します。

メソッド 9

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

vtbl 3 HRESULT GetName(LPWSTR* ppszName)

特定のオフラインファイル設定に関連付けられた名前を取得します。

ppszNameLPWSTR*outオフラインファイル設定の名前を格納した文字列のアドレスを受け取るポインター変数のアドレスです。正常に復帰した場合、呼び出し元は CoTaskMemFree 関数を使用してこのメモリ ブロックを解放する必要があります。

戻り値

成功した場合は S_OK を返し、それ以外の場合はエラー値を返します。

vtbl 4 HRESULT GetValueType(OFFLINEFILES_SETTING_VALUE_TYPE* pType)

特定のオフラインファイル設定のデータ型を取得します。

pTypeOFFLINEFILES_SETTING_VALUE_TYPE*out設定値のデータ型を示す OFFLINEFILES_SETTING_VALUE_TYPE 列挙型の値を受け取ります。

戻り値

スコープが正常に返された場合は S_OK、それ以外の場合はエラー値を返します。

vtbl 5 HRESULT GetPreference(VARIANT* pvarValue, DWORD dwScope)

特定のオフラインファイル設定に関連付けられた、コンピューター単位またはユーザー単位のプリファレンス(基本設定)を取得します。

pvarValueVARIANT*out

プリファレンスが 1 つ以上の値をサポートしている場合、返される VARIANT オブジェクトにそれらの値が格納されます。プリファレンスが値をサポートしていない場合、返される VARIANT の型は VT_EMPTY になります。

本メソッドは、プリファレンス値を格納する前に VARIANT を初期化します。

dwScopeDWORDin

どのプリファレンスを取得するかを示します。次のいずれかである必要があります。

OFFLINEFILES_SETTING_SCOPE_USER (0x00000001)

ユーザー単位のプリファレンスを取得します。

OFFLINEFILES_SETTING_SCOPE_COMPUTER (0x00000002)

コンピューター単位のプリファレンスを取得します。

戻り値

プリファレンスの照会に成功した場合は S_OK、それ以外の場合はエラー値を返します。

プリファレンスが現在適用されていない場合は HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) を返します。

vtbl 6 HRESULT GetPreferenceScope(DWORD* pdwScope)

この設定に関連付けられたプリファレンスのスコープを示します。

pdwScopeDWORD*out

この設定に対するポリシーのサポートされるスコープを受け取ります。このスコープは、次の値のいずれか、または両方になります。

OFFLINEFILES_SETTING_SCOPE_USER (0x00000001)

設定はユーザー単位のプリファレンスをサポートします。

OFFLINEFILES_SETTING_SCOPE_COMPUTER (0x00000002)

設定はコンピューター単位のプリファレンスをサポートします。

戻り値

スコープが正常に返された場合は S_OK、それ以外の場合はエラー値を返します。

解説(Remarks)

これはサポートされるスコープを示すものであり、適用済みのスコープを示すものではない点に注意してください。たとえば、ある設定がユーザー単位とコンピューター単位の両方のプリファレンスを認識していても、実際にはユーザー単位のプリファレンスのみが適用されている場合があります。このような場合でも、本メソッドは OFFLINEFILES_SETTING_SCOPE_USEROFFLINEFILES_SETTING_SCOPE_COMPUTER の両方を返します。

vtbl 7 HRESULT SetPreference(VARIANT* pvarValue, DWORD dwScope)

オフラインファイル設定に関連付けられた、コンピューター単位またはユーザー単位のプリファレンスを設定します。

pvarValueVARIANT*in

プリファレンスに関連付ける値を指定します。

プリファレンスに複数の値が関連付けられる場合、VARIANT の型には VT_ARRAY が含まれ、値は SAFEARRAY に格納されます。

dwScopeDWORDin

設定するプリファレンスがユーザー単位かコンピューター単位かを示します。次のいずれかである必要があります。

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 経由では設定できない点に注意してください。ポリシーはグループ ポリシーの仕組みによってのみ設定できます。

vtbl 8 HRESULT DeletePreference(DWORD dwScope)

プリファレンス設定を削除します。

dwScopeDWORDin

どのプリファレンス設定を削除するかを示します。次のいずれかである必要があります。

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)

プリファレンスがコンピューター単位のものである場合、本メソッドはシステム管理者権限を必要とします。

vtbl 9 HRESULT GetPolicy(VARIANT* pvarValue, DWORD dwScope)

特定のオフラインファイル設定に関連付けられたポリシーを取得します。

pvarValueVARIANT*out

ポリシーが 1 つ以上の値をサポートしている場合、返される VARIANT オブジェクトにそれらの値が格納されます。ポリシーが値をサポートしていない場合、返される VARIANT の型は VT_EMPTY になります。

本メソッドは、ポリシー値を格納する前に VARIANT を初期化します。

dwScopeDWORDin

どのポリシーを取得するかを示します。次のいずれかである必要があります。

注意 すべての設定に関連付けられたポリシーがあるとは限らず、ポリシーがある場合でもコンピューター単位とユーザー単位の両方をサポートしているとは限らない点に注意してください。

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 はポリシー値の照会のみをサポートします。

vtbl 10 HRESULT GetPolicyScope(DWORD* pdwScope)

この設定に関連付けられたポリシーのスコープを取得します。

pdwScopeDWORD*out

この設定に対するポリシーのサポートされるスコープを受け取ります。このスコープは、次の値のいずれか、または両方になります。

OFFLINEFILES_SETTING_SCOPE_USER (0x00000001)

設定はユーザー単位のポリシーをサポートします。

OFFLINEFILES_SETTING_SCOPE_COMPUTER (0x00000002)

設定はコンピューター単位のポリシーをサポートします。

戻り値

スコープが正常に返された場合は S_OK、それ以外の場合はエラー値を返します。

解説(Remarks)

これはサポートされるスコープを示すものであり、適用済みのスコープを示すものではない点に注意してください。たとえば、ある設定がユーザー単位とコンピューター単位の両方のポリシーを認識していても、実際にはユーザー単位のポリシーのみが適用されている場合があります。このような場合でも、本 API は OFFLINEFILES_SETTING_SCOPE_USEROFFLINEFILES_SETTING_SCOPE_COMPUTER の両方を返します。

vtbl 11 HRESULT GetValue(VARIANT* pvarValue, BOOL* pbSetByPolicy)

特定のオフラインファイル設定の値を取得します。

pvarValueVARIANT*out

設定に関連付けられた値を受け取ります。この値は、システム ポリシー、プリファレンス、およびシステム既定値に基づいて決定されます。

本メソッドは、設定値を格納する前に VARIANT を初期化します。

pbSetByPolicyBOOL*out値がポリシーによって設定された場合は TRUE、プリファレンスまたは既定値によって決定された場合は FALSE を受け取ります。

戻り値

値の照会に成功した場合は S_OK、それ以外の場合はエラー値を返します。

解説(Remarks)

pvarValue パラメーターで返される値は、次のように決定されます。

  1. コンピューター ポリシーが存在する場合は、それを使用します。
  2. 存在しない場合で、ユーザー ポリシーが存在するときは、それを使用します。
  3. 存在しない場合で、コンピューターのプリファレンスが存在するときは、それを使用します。
  4. 存在しない場合で、ユーザーのプリファレンスが存在するときは、それを使用します。
  5. いずれも存在しない場合は、システム既定値を使用します。
pbSetByPolicy パラメーターの主な目的は、設定がグループ ポリシーによって構成されている場合に、呼び出し元がその設定に関連する UI を無効化できるようにすることです。

なお、ポリシーはオフラインファイル API 経由では設定できない点に注意してください。ポリシーはグループ ポリシーの仕組みによってのみ設定できます。オフラインファイル API はポリシー値の照会のみをサポートします。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 方式にも切替可。