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

IOfflineFilesCache

COM
IID855d6203-7914-48b9-8d40-4c56f5acffc5継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

オフラインファイル キャッシュを管理するために使用します。

メソッド 17

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

vtbl 3 HRESULT Synchronize(HWND hwndParent, LPWSTR* rgpszPaths, DWORD cPaths, BOOL bAsync, DWORD dwSyncControl, IOfflineFilesSyncConflictHandler* pISyncConflictHandler, IOfflineFilesSyncProgress* pIProgress, GUID* pSyncId)

オフラインファイル キャッシュ内のファイルおよびディレクトリを、該当するネットワーク共有フォルダー内の対応するコピーと同期します。

hwndParentHWNDinoptional表示されるユーザーインターフェイス要素の親ウィンドウを指定します。dwSyncControl パラメーターに OFFLINEFILES_SYNC_CONTROL_FLAG_INTERACTIVE フラグが設定されていない場合、このパラメーターは無視されます。
rgpszPathsLPWSTR*in同期対象のファイルまたはディレクトリの完全修飾 UNC パスを指すポインターの配列です。
cPathsDWORDinrgpszPaths 配列内のパスの数です。
bAsyncBOOLin操作を非同期に実行するかどうかを示します。このパラメーターが TRUE の場合、操作はシステムスレッドプール内の別スレッドに配置され、関数はただちに戻ります。このパラメーターが FALSE の場合、関数は操作の完了時に戻ります。
dwSyncControlDWORDin

同期操作全体の動作を制御するフラグです。同期方向 (受信、送信)、LNK ターゲットの固定 (ピン留め)、新規ファイルの固定 (ピン留め) といった動作を、これらのフラグで制御します。各フラグの意味は次のとおりです。

OFFLINEFILES_SYNC_CONTROL_FLAG_FILLSPARSE (0x00000001)

キャッシュ内のスパースファイルを埋めます。このフラグを設定すると、キャッシュ内のローカルコピーが列挙されます。スパースな状態でキャッシュされているファイルが見つかった場合は、スパースでなくなるように内容が埋められます。スパースな状態でキャッシュされたファイルは、オフラインでは利用できません。詳細については、IOfflineFilesFileItem::IsSparse メソッドを参照してください。

OFFLINEFILES_SYNC_CONTROL_FLAG_SYNCIN (0x00000002)

サーバー上のリモートの変更をローカルキャッシュへ同期します。このフラグを設定すると、OFFLINEFILES_SYNC_CONTROL_FLAG_FILLSPARSE フラグも自動的に設定されます。

OFFLINEFILES_SYNC_CONTROL_FLAG_SYNCOUT (0x00000004)

ローカルキャッシュ内のローカルの変更をサーバーへ同期します。

OFFLINEFILES_SYNC_CONTROL_FLAG_PINNEWFILES (0x00000008)

固定 (ピン留め) されたディレクトリ内で、サーバー上に見つかった新規ファイルを固定 (ピン留め) します。OFFLINEFILES_SYNC_CONTROL_FLAG_SYNCIN フラグが設定されていない場合、このフラグは無視されます。

OFFLINEFILES_SYNC_CONTROL_PINLINKTARGETS (0x00000010)

OFFLINEFILES_SYNC_CONTROL_FLAG_PINNEWFILES フラグが設定されている場合にのみ適用されます。通常、シェルリンク (LNK 型) を固定 (ピン留め) しても、そのターゲットは自動的には固定されません。このフラグを設定すると、LNK ファイルの固定時に、ターゲットがファイルであればそのターゲットも自動的に固定されます。ターゲットがディレクトリの場合、ターゲットが自動的に固定されることはありません。

OFFLINEFILES_SYNC_CONTROL_FLAG_PINFORUSER (0x00000020)

OFFLINEFILES_SYNC_CONTROL_FLAG_PINNEWFILES フラグが設定されている場合にのみ適用されます。呼び出し元ユーザーのために項目を固定 (ピン留め) します。この関数の呼び出し元では通常このフラグを設定します。ここで重要な点として、オフラインファイルは真の意味でのユーザーごとの固定をサポートしていません。あるユーザーのために項目を固定すると、そのコンピューターのすべてのユーザーに対して固定されます。ただし、固定されたファイルにアクセスできるかどうかは、オンライン時に計算された当該ファイルに対するユーザーのアクセス権に依存します。

OFFLINEFILES_SYNC_CONTROL_FLAG_PINFORUSER_POLICY (0x00000040)

OFFLINEFILES_SYNC_CONTROL_FLAG_PINNEWFILES フラグが設定されている場合にのみ適用されます。ユーザーごとのポリシーのために項目を固定 (ピン留め) します。OFFLINEFILES_SYNC_CONTROL_FLAG_PINFORUSER フラグとの違いは、このフラグはオフラインファイルのユーザーインターフェイスからユーザーが変更できない点です。内部的には、グループポリシー拡張によって項目が固定される際に、オフラインファイルがこのフラグを設定します。

OFFLINEFILES_SYNC_CONTROL_FLAG_PINFORALL (0x00000080)

OFFLINEFILES_SYNC_CONTROL_FLAG_PINNEWFILES フラグが設定されている場合にのみ適用されます。ローカルコンピューターのすべてのユーザーのために項目を固定 (ピン留め) します。固定状態はすべてのユーザーに適用されますが、固定されたファイルにアクセスできるかどうかは、オンライン時に計算された当該ファイルに対するユーザーのアクセス権に依存します。

OFFLINEFILES_SYNC_CONTROL_FLAG_PINFORREDIR (0x00000100)

OFFLINEFILES_SYNC_CONTROL_FLAG_PINNEWFILES フラグが設定されている場合にのみ適用されます。呼び出し元ユーザーのフォルダーリダイレクトを目的として項目を固定 (ピン留め) します。Windows のフォルダーリダイレクトは、リダイレクトされたフォルダーを固定する際にこのフラグを設定します。

OFFLINEFILES_SYNC_CONTROL_FLAG_LOWPRIORITY (0x00000200)

このフラグは将来の使用のために予約されています。

OFFLINEFILES_SYNC_CONTROL_FLAG_ASYNCPROGRESS (0x00000400)

進捗は、実際の操作とは非同期に進捗インターフェイスへ報告されます。動作の詳細については、「Asynchronous Progress Notifications」のセクションを参照してください。このフラグが設定されていない場合、進捗は各操作と同期して報告されます。

OFFLINEFILES_SYNC_CONTROL_FLAG_INTERACTIVE (0x00000800)

必要に応じて操作がユーザーインターフェイス要素を表示してよい場合に、このフラグを設定します。例としては、システムの資格情報要求ダイアログがあります。このフラグが設定されている場合、表示されるユーザーインターフェイス要素の親として hwndParent の値が使用されます。

OFFLINEFILES_SYNC_CONTROL_FLAG_CONSOLE (0x00001000)

OFFLINEFILES_SYNC_CONTROL_FLAG_INTERACTIVE フラグが設定されていない場合、このフラグは無視されます。OFFLINEFILES_SYNC_CONTROL_FLAG_INTERACTIVE フラグが設定されている場合、このフラグは、生成される UI を操作の呼び出し元プロセスに関連付けられたコンソールウィンドウへ出力すべきことを示します。

OFFLINEFILES_SYNC_CONTROL_FLAG_SKIPSUSPENDEDDIRS (0x00002000)

同期操作で、中断されたディレクトリツリーを同期しないようにする場合に、このフラグを設定します。ユーザーが対話的かつ意図的に同期操作を呼び出したのではない場合には、このフラグを設定することを推奨します。

OFFLINEFILES_SYNC_CONTROL_FLAG_BACKGROUND (0x00010000)

同期操作のために現在オープンされているファイルをアプリケーションが開こうとした場合に、共有違反を回避したいときは、このフラグを設定します。このような状況が発生し、かつこのフラグが設定されている場合、同期操作は「譲歩」して、その時点では当該ファイルの処理を完了しません。このフラグは主にオフラインファイル サービスが内部操作のために使用します。

OFFLINEFILES_SYNC_CONTROL_FLAG_NONEWFILESOUT (0x00020000)

OFFLINEFILES_SYNC_CONTROL_FLAG_SYNCOUT フラグが設定されていない場合、このフラグは無視されます。OFFLINEFILES_SYNC_CONTROL_FLAG_SYNCOUT フラグが設定されている場合、このフラグは、クライアント上にのみ存在する新規ファイルをサーバー上に作成しないことを示します。

IOfflineFilesSyncConflictHandler の実装を提供する代わりに、すべての同期の競合を「ローカルを維持」「リモートを維持」「最新を維持」のいずれかの方法で解決したい場合は、次のフラグ値のうち 1 つ (かつ 1 つだけ) を設定します。なお、pISyncConflictHandler パラメーターが NULL でない場合、これらのフラグ値は無視されます。

OFFLINEFILES_SYNC_CONTROL_CR_KEEPLOCAL (0x10000000)

ローカルコピーをサーバーへ同期します。

OFFLINEFILES_SYNC_CONTROL_CR_KEEPREMOTE (0x20000000)

リモートコピーをローカルキャッシュへ同期します。

OFFLINEFILES_SYNC_CONTROL_CR_KEEPLATEST (0x30000000)

最終変更日時が最も新しいコピーを維持します。この解決方法は「last writer wins (最後に書き込んだ側が優先)」と呼ばれることがあります。

pISyncConflictHandlerIOfflineFilesSyncConflictHandler*inoptional競合ハンドラーの実装を指す IOfflineFilesSyncConflictHandler インターフェイスポインターです。指定した場合、同期操作は処理中に同期の競合が発生するたびに競合ハンドラーを呼び出して解決を試みます。ハンドラーは競合の種類を示すコードを受け取り、競合が解決されたかどうか、または同期操作が取るべき他のアクションを示すコードを返します。このパラメーターは省略可能で、NULL を指定できます。NULL の場合、オフラインファイル サービス内で既定のアクションが実行されます。通常、その結果として競合はユーザーの同期競合ストアに記録され、後で同期センターに表示されます。
pIProgressIOfflineFilesSyncProgress*inoptional操作中に進捗イベントを受け取るイベントシンクのインターフェイスです。このパラメーターは省略可能で、NULL を指定できます。
pSyncIdGUID*inoptionalこの同期操作に適用される一意の ID です。この ID は、本操作に関連して発行されるすべてのイベント (IOfflineFilesEvents) に含められます。このパラメーターは省略可能で、NULL を指定できます。

戻り値

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

操作がキャンセルされた場合は HRESULT_FROM_WIN32(ERROR_CANCELLED) を返します。

個々のファイルに関する失敗を検出するには、IOfflineFilesSyncProgress のイベントを監視してください。

解説(Remarks)

bAsync パラメーターが TRUE の場合、呼び出し元は pIProgress パラメーターを通じてイベントインターフェイスを提供する必要があります。Synchronize メソッドは、操作の開始時にイベントインターフェイスの参照カウントをインクリメントし、操作の完了時にデクリメントします。したがって、イベントシンクの実装では、操作中ずっとモジュールがメモリ上に残るように、ホストモジュールの参照カウントをインクリメントすることを推奨します。

同期操作が進行中にキャンセルされた場合でも、その時点までに同期されたファイルは同期済みのまま残ります。

rgpszPaths パラメーターに 1 つのパスのみが指定され、そのパスが単一ファイルを指す場合、戻り値はその 1 回の同期操作の結果を示します。それ以外の場合、呼び出し元は次の一覧にある進捗コールバックメソッドを実装し、IOfflineFilesSyncProgress::SyncItemResult メソッドを監視して、処理された各ファイルおよびディレクトリの結果を取得する必要があります。

進捗イベント インターフェイス メソッド 説明
IOfflineFilesProgress Begin この操作の開始時に呼び出されます。
IOfflineFilesSyncProgress SyncItemBegin 各ファイルの処理開始時に呼び出されます。
IOfflineFilesSyncProgress SyncItemResult 各ファイルの同期後に呼び出されます。
IOfflineFilesProgress QueryAbort キャンセル要求を検出するため、同期操作中に定期的に呼び出されます。
IOfflineFilesProgress End この操作の終了時に呼び出されます。

呼び出し元のコードが発行される同期イベントも受信する場合は、pSyncId パラメーターを通じて同期 ID を指定できます。同じ ID 値が、この操作から生成される SyncBeginSyncFileResultSyncEnd の各発行イベント (IOfflineFilesEvents) を通じて伝達されます。

vtbl 4 HRESULT DeleteItems(LPWSTR* rgpszPaths, DWORD cPaths, DWORD dwFlags, BOOL bAsync, IOfflineFilesSimpleProgress* pIProgress)

ローカルキャッシュからファイルおよびディレクトリを削除します。

rgpszPathsLPWSTR*in削除対象のファイルまたはディレクトリの完全修飾 UNC パスを指すポインターの配列です。
cPathsDWORDinrgpszPaths 配列内のパスの数です。
dwFlagsDWORDin

削除操作の動作を制御するフラグです。このパラメーターには、次の値を 1 つ以上指定できます。

OFFLINEFILES_DELETE_FLAG_NOAUTOCACHED (0x00000001)

自動的にキャッシュされた項目を削除しません。既定の動作では、自動的にキャッシュされた項目を削除します。

OFFLINEFILES_DELETE_FLAG_NOPINNED (0x00000002)

固定 (ピン留め) された項目を削除しません。既定の動作では、固定された項目を削除します。

OFFLINEFILES_DELETE_FLAG_DELMODIFIED (0x00000004)

キャッシュ内でローカルに変更されている場合でも削除します。既定の動作では、未同期のローカル変更があるファイルは削除しません。

OFFLINEFILES_DELETE_FLAG_ADMIN (0x80000000)

管理者がアクセス権に関係なくすべてのファイルを列挙および削除できるようにします。このフラグが設定されていて、かつ呼び出し元が管理者でない場合、関数は失敗します。

bAsyncBOOLin操作を非同期に実行するかどうかを示します。このパラメーターが TRUE の場合、操作は非同期実行としてスケジュールされ、関数はただちに戻ります。このパラメーターが FALSE の場合、関数は操作の完了時に戻ります。
pIProgressIOfflineFilesSimpleProgress*inoptional操作中に進捗イベントを受け取るイベントシンクのインターフェイスです。イベントが不要な場合、このパラメーターには NULL を指定できます。非同期実行の場合は、イベントシンクを提供することを強く推奨します。非同期操作の完了を通知される手段は、進捗インターフェイスの実装のみです。

戻り値

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

操作がキャンセルされた場合は HRESULT_FROM_WIN32(ERROR_CANCELLED) を返します。 操作中にエラーが発生した場合は HRESULT_FROM_WIN32(ERROR_MORE_DATA) を返します。エラーの発生を検出するには、IOfflineFilesSimpleProgress::ItemResult コールバックメソッドを使用してください。

解説(Remarks)

キャッシュから削除するファイルおよびディレクトリに対して、呼び出し元が十分なアクセス権を持っている必要があります。

削除操作が進行中にキャンセルされた場合、その時点までに処理されたファイルへの変更はロールバックされません。

ディレクトリに対する削除操作で、そのディレクトリに含まれるすべてのファイルまたはディレクトリを削除できない場合 (たとえばアクセスが拒否された場合)、指定されたディレクトリのエントリは削除されません。その時点までに削除されたファイルおよびディレクトリは削除されたままとなります。

ファイルはローカルキャッシュからのみ削除されます。ネットワークサーバー上の対応するファイルには影響しません。

削除されたファイルは、ごみ箱から復元することはできません。削除されたファイルをオフラインで利用できるようにするには、再度キャッシュする必要があります。

rgpszPaths パラメーターに 1 つのパスのみが指定され、そのパスが単一ファイルを指す場合、戻り値はその 1 回の削除操作の結果を示します。それ以外の場合、呼び出し元は次の一覧にある進捗コールバックメソッドを実装し、IOfflineFilesSimpleProgress::ItemResult メソッドを監視して、処理された各ファイルおよびディレクトリの結果を取得する必要があります。

進捗イベント インターフェイス メソッド 説明
IOfflineFilesProgress Begin この操作の開始時に呼び出されます。
IOfflineFilesSimpleProgress ItemBegin 各ファイルの処理開始時に呼び出されます。
IOfflineFilesSimpleProgress ItemResult 各ファイルの削除後に呼び出されます。
IOfflineFilesProgress QueryAbort キャンセル要求を検出するため、同期操作中に定期的に呼び出されます。
IOfflineFilesProgress End この操作の終了時に呼び出されます。
vtbl 5 HRESULT DeleteItemsForUser(LPWSTR pszUser, LPWSTR* rgpszPaths, DWORD cPaths, DWORD dwFlags, BOOL bAsync, IOfflineFilesSimpleProgress* pIProgress)

特定のユーザーのファイルおよびディレクトリをローカルキャッシュから削除します。

pszUserLPWSTRinファイルの削除対象となるユーザーを識別する文字列です。このオプションはローカルコンピューターの管理者のみが使用できます。文字列には、ユーザーの SID を文字列形式で指定するか、ユーザーの domain\user 形式のログオン名を指定します。
rgpszPathsLPWSTR*in削除対象のファイルまたはディレクトリの完全修飾 UNC パスを指すポインターの配列です。
cPathsDWORDinrgpszPaths 内のパスの数です。
dwFlagsDWORDin

削除操作の動作を制御するフラグです。このパラメーターには、次の値を 1 つ以上指定できます。

OFFLINEFILES_DELETE_FLAG_NOAUTOCACHED (0x00000001)

自動的にキャッシュされた項目を削除しません。既定の動作では、自動的にキャッシュされた項目を削除します。

OFFLINEFILES_DELETE_FLAG_NOPINNED (0x00000002)

固定 (ピン留め) された項目を削除しません。既定の動作では、固定された項目を削除します。

OFFLINEFILES_DELETE_FLAG_DELMODIFIED (0x00000004)

キャッシュ内でローカルに変更されている場合でも削除します。既定の動作では、未同期のローカル変更があるファイルは削除しません。

OFFLINEFILES_DELETE_FLAG_ADMIN (0x80000000)

管理者がアクセス権に関係なくすべてのファイルを列挙および削除できるようにします。このフラグが設定されていて、かつ呼び出し元が管理者でない場合、関数は失敗します。

bAsyncBOOLin操作を非同期に実行するかどうかを示します。このパラメーターが TRUE の場合、操作は非同期実行としてスケジュールされ、関数はただちに戻ります。このパラメーターが FALSE の場合、関数は操作の完了時に戻ります。
pIProgressIOfflineFilesSimpleProgress*inoptional操作中に進捗イベントを受け取るイベントシンクのインターフェイスです。イベントが不要な場合、このパラメーターには NULL を指定できます。非同期実行の場合は、イベントシンクを提供することを強く推奨します。非同期操作の完了を通知される手段は、進捗インターフェイスの実装のみです。

戻り値

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

操作がキャンセルされた場合は HRESULT_FROM_WIN32(ERROR_CANCELLED) を返します。 操作中にエラーが発生した場合は HRESULT_FROM_WIN32(ERROR_MORE_DATA) を返します。エラーの発生を検出するには、IOfflineFilesSimpleProgress::ItemResult コールバックメソッドを使用してください。

解説(Remarks)

キャッシュから削除するファイルおよびディレクトリに対して、呼び出し元が十分なアクセス権を持っている必要があります。

削除操作が進行中にキャンセルされた場合、その時点までに処理されたファイルへの変更はロールバックされません。

ディレクトリに対する削除操作で、そのディレクトリに含まれるすべてのファイルまたはディレクトリを削除できない場合 (たとえばアクセスが拒否された場合)、指定されたディレクトリのエントリは削除されません。その時点までに削除されたファイルおよびディレクトリは削除されたままとなります。

ファイルはローカルキャッシュからのみ削除されます。ネットワークサーバー上の対応するファイルには影響しません。

削除されたファイルは、ごみ箱から復元することはできません。削除されたファイルをオフラインで利用できるようにするには、再度キャッシュする必要があります。

rgpszPaths パラメーターに 1 つのパスのみが指定され、そのパスが単一ファイルを指す場合、戻り値はその 1 回の削除操作の結果を示します。それ以外の場合、呼び出し元は次の一覧にある進捗コールバックメソッドを実装し、IOfflineFilesSimpleProgress::ItemResult メソッドを監視して、処理された各ファイルおよびディレクトリの結果を取得する必要があります。

進捗イベント インターフェイス メソッド 説明
IOfflineFilesProgress Begin この操作の開始時に呼び出されます。
IOfflineFilesSyncProgress SyncItemBegin 各ファイルの処理開始時に呼び出されます。
IOfflineFilesSyncProgress SyncItemResult 各ファイルの削除後に呼び出されます。
IOfflineFilesProgress QueryAbort キャンセル要求を検出するため、同期操作中に定期的に呼び出されます。
IOfflineFilesProgress End この操作の終了時に呼び出されます。
vtbl 6 HRESULT Pin(HWND hwndParent, LPWSTR* rgpszPaths, DWORD cPaths, BOOL bDeep, BOOL bAsync, DWORD dwPinControlFlags, IOfflineFilesSyncProgress* pIProgress)

ファイル、ディレクトリ、およびネットワーク共有フォルダーを固定 (ピン留め) します。

hwndParentHWNDinoptional表示されるユーザーインターフェイス要素の親ウィンドウを指定します。dwPinControlFlags パラメーターに OFFLINEFILES_PIN_CONTROL_FLAG_INTERACTIVE フラグが設定されていない場合、このパラメーターは無視されます。
rgpszPathsLPWSTR*in固定 (ピン留め) 対象のファイルまたはディレクトリの完全修飾 UNC パスを指すポインターの配列です。
cPathsDWORDinrgpszPaths 内のパスの数です。
bDeepBOOLin指定されたパスの 1 つ以上がディレクトリまたは共有フォルダーを指す場合、その配下のすべての子 (ファイルおよびサブディレクトリ) も固定 (ピン留め) するかどうかを示します。このパラメーターが TRUE の場合、すべての子が再帰的に固定されます。このパラメーターが FALSE の場合、ディレクトリ自体のみが固定され、その子は固定されません。次回の同期操作の実行時に、すべての子が再帰的に固定されます。
bAsyncBOOLin操作を非同期に実行するかどうかを示します。このパラメーターが TRUE の場合、操作は非同期実行としてスケジュールされ、関数はただちに戻ります。このパラメーターが FALSE の場合、関数は操作の完了時に戻ります。
dwPinControlFlagsDWORDin

固定 (ピン留め) 操作の動作を制御します。次のフラグを 1 つ以上指定できます。

OFFLINEFILES_PIN_CONTROL_FLAG_FILL (0x00000001)

項目を固定 (ピン留め) するとともに、その内容を埋めます。これにより、固定操作の一部として項目が完全にキャッシュされます。このフラグが設定されていない場合、項目は固定されるだけで、内容が埋められるのは他の同期手段によることになります。なお、オフラインファイル サービスは定期的にバックグラウンドでファイルの内容を埋めます。即時のオフライン利用が不要であれば、このフラグを設定せずにサービスによるバックグラウンドでの処理に任せるほうが、パフォーマンス上は望ましい場合があります。

OFFLINEFILES_PIN_CONTROL_PINLINKTARGETS (0x00000010)

通常、シェルリンク (LNK 型) を固定 (ピン留め) しても、そのターゲットは自動的には固定されません。このフラグを設定すると、LNK ファイルの固定時に、ターゲットがファイルであればそのターゲットも自動的に固定されます。ターゲットがディレクトリの場合、ターゲットが自動的に固定されることはありません。

OFFLINEFILES_PIN_CONTROL_FLAG_FORUSER (0x00000020)

呼び出し元ユーザーのために項目を固定 (ピン留め) します。この関数の呼び出し元では通常このフラグを設定します。ここで重要な点として、オフラインファイルは真の意味でのユーザーごとの固定をサポートしていません。あるユーザーのために項目を固定すると、そのコンピューターのすべてのユーザーに対して固定されます。このフラグで固定された項目は、当該ファイルにアクセスできる任意のユーザーが固定解除できます。固定されたファイルにアクセスできるかどうかは、オンライン時に計算された当該ファイルに対するユーザーのアクセス権に依存します。

OFFLINEFILES_PIN_CONTROL_FLAG_FORUSER_POLICY (0x00000040)

ユーザーごとのポリシーのために項目を固定 (ピン留め) します。「FORUSER」フラグとの違いは、このフラグはオフラインファイルのユーザーインターフェイスからユーザーが変更できない点です。内部的には、グループポリシー拡張によって項目が固定される際に、オフラインファイルがこのフラグを設定します。

OFFLINEFILES_PIN_CONTROL_FLAG_FORALL (0x00000080)

ローカルコンピューターのすべてのユーザーのために項目を固定 (ピン留め) します。固定状態はすべてのユーザーに適用されますが、固定されたファイルにアクセスできるかどうかは、オンライン時に計算された当該ファイルに対するユーザーのアクセス権に依存します。

OFFLINEFILES_PIN_CONTROL_FLAG_FORREDIR (0x00000100)

呼び出し元ユーザーのフォルダーリダイレクトを目的として項目を固定 (ピン留め) します。Windows のフォルダーリダイレクトは、リダイレクトされたフォルダーを固定する際にこのフラグを設定します。

OFFLINEFILES_PIN_CONTROL_FLAG_LOWPRIORITY (0x00000200)

将来の使用のために予約されています。

OFFLINEFILES_PIN_CONTROL_FLAG_ASYNCPROGRESS (0x00000400)

進捗は、実際の操作とは非同期に進捗インターフェイスへ報告されます。動作の詳細については、「Asynchronous Progress Notifications」のセクションを参照してください。このフラグが設定されていない場合、進捗は各操作と同期して報告されます。

OFFLINEFILES_PIN_CONTROL_FLAG_INTERACTIVE (0x00000800)

必要に応じて操作がユーザーインターフェイス要素を表示してよい場合に、このフラグを設定します。例としては、システムの資格情報要求ダイアログがあります。このフラグが設定されている場合、表示されるユーザーインターフェイス要素の親として hwndParent の値が使用されます。

OFFLINEFILES_PIN_CONTROL_FLAG_CONSOLE (0x00001000)

「interactive」フラグが設定されていない場合、このフラグは無視されます。「interactive」フラグが設定されている場合、このフラグは、生成される UI を操作の呼び出し元プロセスに関連付けられたコンソールウィンドウへ出力すべきことを示します。

OFFLINEFILES_PIN_CONTROL_FLAG_BACKGROUND (0x00010000)

固定 (ピン留め) 操作のために現在オープンされているファイルをアプリケーションが開こうとした場合に、共有違反を回避したいときは、このフラグを設定します。このような状況が発生し、かつこのフラグが設定されている場合、固定操作は「譲歩」して、その時点では当該ファイルの処理を完了しません。このフラグは主にオフラインファイル サービスが内部操作のために使用します。

pIProgressIOfflineFilesSyncProgress*inoptional操作中に進捗イベントを受け取るイベントシンクのインターフェイスです。イベントが不要な場合、このパラメーターには NULL を指定できます。

戻り値

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

操作がキャンセルされた場合は HRESULT_FROM_WIN32(ERROR_CANCELLED) を返します。

解説(Remarks)

複数のファイルを対象とする固定 (ピン留め) 操作が進行中にキャンセルされた場合、その時点までに処理されたファイルへの変更はロールバックされません。

rgpszPaths パラメーターに 1 つのパスのみが指定され、そのパスが単一ファイルを指す場合、戻り値はその 1 回の固定操作の結果を示します。それ以外の場合、呼び出し元は次の一覧にある進捗コールバックメソッドを実装し、IOfflineFilesSyncProgress::SyncItemResult メソッドを監視して、処理された各ファイルおよびディレクトリの結果を取得する必要があります。

進捗イベント インターフェイス メソッド 説明
IOfflineFilesProgress Begin この操作の開始時に呼び出されます。
IOfflineFilesSyncProgress SyncItemBegin 各ファイルの処理開始時に呼び出されます。
IOfflineFilesSyncProgress SyncItemResult 各ファイルの固定 (ピン留め) 後に呼び出されます。
IOfflineFilesProgress QueryAbort キャンセル要求を検出するため、同期操作中に定期的に呼び出されます。
IOfflineFilesProgress End この操作の終了時に呼び出されます。
vtbl 7 HRESULT Unpin(HWND hwndParent, LPWSTR* rgpszPaths, DWORD cPaths, BOOL bDeep, BOOL bAsync, DWORD dwPinControlFlags, IOfflineFilesSyncProgress* pIProgress)

オフラインファイル キャッシュから、ファイル、ディレクトリ、およびネットワーク共有フォルダーの固定 (ピン留め) を解除します。

hwndParentHWNDinoptional表示されるユーザーインターフェイス要素の親ウィンドウを指定します。dwPinControlFlags パラメーターに OFFLINEFILES_PIN_CONTROL_FLAG_INTERACTIVE フラグが設定されていない場合、このパラメーターは無視されます。
rgpszPathsLPWSTR*in固定解除 (ピン留め解除) 対象のファイルまたはディレクトリの完全修飾 UNC パスを指すポインターの配列です。
cPathsDWORDinrgpszPaths 配列内のパスの数です。
bDeepBOOLin指定されたパスの 1 つ以上がディレクトリまたは共有フォルダーを指す場合、すべてのサブディレクトリについても固定を解除するかどうかを示します。このパラメーターが TRUE の場合、すべてのサブディレクトリの固定が再帰的に解除されます。このパラメーターが FALSE の場合、そのディレクトリの直下の子であるファイルのみが固定解除されます。
bAsyncBOOLin操作を非同期に実行するかどうかを示します。このパラメーターが TRUE の場合、操作は非同期実行としてスケジュールされ、関数はただちに戻ります。このパラメーターが FALSE の場合、関数は操作の完了時に戻ります。
dwPinControlFlagsDWORDin

固定解除 (ピン留め解除) 操作の動作を制御します。次のフラグを 1 つ以上指定できます。

OFFLINEFILES_PIN_CONTROL_FLAG_FILL (0x00000001)

固定解除時には無視されます。

OFFLINEFILES_PIN_CONTROL_PINLINKTARGETS (0x00000010)

固定解除時には無視されます。

OFFLINEFILES_PIN_CONTROL_FLAG_FORUSER (0x00000020)

呼び出し元ユーザーについて項目の固定を解除します。この関数の呼び出し元では通常このフラグを設定します。ここで重要な点として、オフラインファイルは真の意味でのユーザーごとの固定をサポートしていません。あるユーザーのために項目を固定すると、そのコンピューターのすべてのユーザーに対して固定されます。ただし、固定されたファイルにアクセスできるかどうかは、オンライン時に計算された当該ファイルに対するユーザーのアクセス権に依存します。

OFFLINEFILES_PIN_CONTROL_FLAG_FORUSER_POLICY (0x00000040)

ユーザーごとのポリシーについて項目の固定を解除します。「FORUSER」フラグとの違いは、このフラグはオフラインファイルのユーザーインターフェイスからユーザーが変更できない点です。内部的には、グループポリシー拡張によって項目の固定が解除される際に、オフラインファイルがこのフラグを設定します。

OFFLINEFILES_PIN_CONTROL_FLAG_FORALL (0x00000080)

ローカルコンピューターのすべてのユーザーについて項目の固定を解除します。固定状態はすべてのユーザーに適用されますが、固定されたファイルにアクセスできるかどうかは、オンライン時に計算された当該ファイルに対するユーザーのアクセス権に依存します。

OFFLINEFILES_PIN_CONTROL_FLAG_FORREDIR (0x00000100)

呼び出し元ユーザーのフォルダーリダイレクトを目的として項目の固定を解除します。Windows のフォルダーリダイレクトは、リダイレクトされたフォルダーの固定を解除する際にこのフラグを設定します。

OFFLINEFILES_PIN_CONTROL_FLAG_LOWPRIORITY (0x00000200)

将来の使用のために予約されています。

OFFLINEFILES_PIN_CONTROL_FLAG_ASYNCPROGRESS (0x00000400)

進捗は、実際の操作とは非同期に進捗インターフェイスへ報告されます。動作の詳細については、「Asynchronous Progress Notifications」のセクションを参照してください。このフラグが設定されていない場合、進捗は各操作と同期して報告されます。

OFFLINEFILES_PIN_CONTROL_FLAG_INTERACTIVE (0x00000800)

必要に応じて操作がユーザーインターフェイス要素を表示してよい場合に、このフラグを設定します。例としては、システムの資格情報要求ダイアログがあります。このフラグが設定されている場合、表示されるユーザーインターフェイス要素の親として hwndParent の値が使用されます。

OFFLINEFILES_PIN_CONTROL_FLAG_CONSOLE (0x00001000)

「interactive」フラグが設定されていない場合、このフラグは無視されます。「interactive」フラグが設定されている場合、このフラグは、生成される UI を操作の呼び出し元プロセスに関連付けられたコンソールウィンドウへ出力すべきことを示します。

OFFLINEFILES_PIN_CONTROL_FLAG_BACKGROUND (0x00010000)

固定 (ピン留め) 操作のために現在オープンされているファイルをアプリケーションが開こうとした場合に、共有違反を回避したいときは、このフラグを設定します。このような状況が発生し、かつこのフラグが設定されている場合、固定解除操作は「譲歩」して、その時点では当該ファイルの処理を完了しません。このフラグは主にオフラインファイル サービスが内部操作のために使用します。

pIProgressIOfflineFilesSyncProgress*inoptional操作中に進捗イベントを受け取るイベントシンクのインターフェイスです。イベントが不要な場合、このパラメーターには NULL を指定できます。

戻り値

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

操作がキャンセルされた場合は HRESULT_FROM_WIN32(ERROR_CANCELLED) を返します。

解説(Remarks)

複数のファイルを対象とする固定解除 (ピン留め解除) 操作が進行中にキャンセルされた場合、その時点までに処理されたファイルへの変更はロールバックされません。

rgpszPaths パラメーターに 1 つのパスのみが指定され、そのパスが単一ファイルを指す場合、戻り値はその 1 回の固定解除操作の結果を示します。それ以外の場合、呼び出し元は次の一覧にある進捗コールバックメソッドを実装し、IOfflineFilesSyncProgress::SyncItemResult メソッドを監視して、処理された各ファイルおよびディレクトリの結果を取得する必要があります。

進捗イベント インターフェイス メソッド 説明
IOfflineFilesProgress Begin この操作の開始時に呼び出されます。
IOfflineFilesSyncProgress SyncItemBegin 各ファイルの処理開始時に呼び出されます。
IOfflineFilesSyncProgress SyncItemResult 各ファイルの固定解除 (ピン留め解除) 後に呼び出されます。
IOfflineFilesProgress QueryAbort キャンセル要求を検出するため、同期操作中に定期的に呼び出されます。
IOfflineFilesProgress End この操作の終了時に呼び出されます。
vtbl 8 HRESULT GetEncryptionStatus(BOOL* pbEncrypted, BOOL* pbPartial)

オフラインファイル キャッシュの現在の暗号化状態 (暗号化済みか未暗号化か) を取得します。

pbEncryptedBOOL*outオフラインファイル キャッシュが暗号化するよう構成されている場合は TRUE、暗号化しないよう構成されている場合は FALSE を受け取ります。
pbPartialBOOL*outpbEncrypted で返される値に基づき、オフラインファイル キャッシュが部分的に暗号化されている、または部分的に未暗号化である場合は TRUE を受け取ります。完全に暗号化されている、または完全に未暗号化である場合は FALSE を受け取ります。

戻り値

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

解説(Remarks)

この暗号化状態はオフラインファイル キャッシュから読み取られ、その時点でのキャッシュの状態を反映します。

このメソッドは 2 つの値を返し、キャッシュが完全に暗号化されているか、部分的に暗号化されているか、完全に未暗号化か、部分的に未暗号化かを示します。

キャッシュの暗号化状態を変更するには、IOfflineFilesCache::Encrypt メソッドを使用してください。

次の例は、このメソッドの使用方法を示しています。

    //
    // Assume we already have a cache ptr.
    //
    IOfflineFilesCache *pCache;
    BOOL bEncrypted;
    BOOL bPartial;
    HRESULT hr = pCache->GetEncryptionStatus(&bEncrypted, &bPartial);
    if (SUCCEEDED(hr))
    {
        if (bEncrypted)
        {
            if (bPartial)
            {
                // Cache is partially encrypted.
            }
            else
            {
                // Cache is fully encrypted.
            }
        }
        else
        {
            if (bPartial)
            {
                // Cache is partially unencrypted.
            }
            else
            {
                // Cache is fully unencrypted.
            }
        }
    }
vtbl 9 HRESULT Encrypt(HWND hwndParent, BOOL bEncrypt, DWORD dwEncryptionControlFlags, BOOL bAsync, IOfflineFilesSyncProgress* pIProgress)

呼び出し元ユーザーのためにキャッシュされている、オフラインファイル キャッシュの内容を暗号化または暗号化解除します。

hwndParentHWNDinoptional表示されるユーザーインターフェイス要素の親ウィンドウを指定します。dwEncryptionControlFlags パラメーターに OFFLINEFILES_ENCRYPTION_CONTROL_FLAG_INTERACTIVE フラグが設定されていない場合、このパラメーターは無視されます。
bEncryptBOOLin暗号化する場合は TRUE、暗号化を解除する場合は FALSE を指定します。
dwEncryptionControlFlagsDWORDin

このパラメーターには、次の値を 1 つ以上指定できます。

OFFLINEFILES_ENCRYPTION_CONTROL_FLAG_LOWPRIORITY (0x00000200)

将来の使用のために予約されています。

OFFLINEFILES_ENCRYPTION_CONTROL_FLAG_ASYNCPROGRESS (0x00000400)

進捗は、実際の操作とは非同期に進捗インターフェイスへ報告されます。動作の詳細については、「Asynchronous Progress Notifications」のセクションを参照してください。このフラグが設定されていない場合、進捗は各操作と同期して報告されます。

OFFLINEFILES_ENCRYPTION_CONTROL_FLAG_INTERACTIVE (0x00000800)

必要に応じて操作がユーザーインターフェイス要素を表示してよい場合に、このフラグを設定します。例としては、システムの資格情報要求ダイアログがあります。このフラグが設定されている場合、表示されるユーザーインターフェイス要素の親として hwndParent の値が使用されます。

OFFLINEFILES_ENCRYPTION_CONTROL_FLAG_CONSOLE (0x00001000)

OFFLINEFILES_ENCRYPTION_CONTROL_FLAG_INTERACTIVE フラグが設定されていない場合、このフラグは無視されます。OFFLINEFILES_ENCRYPTION_CONTROL_FLAG_INTERACTIVE フラグが設定されている場合、このフラグは、生成される UI を操作の呼び出し元プロセスに関連付けられたコンソールウィンドウへ出力すべきことを示します。

OFFLINEFILES_ENCRYPTION_CONTROL_FLAG_BACKGROUND (0x00010000)

暗号化操作のために現在オープンされているファイルをアプリケーションが開こうとした場合に、共有違反を回避したいときは、このフラグを設定します。このような状況が発生し、かつこのフラグが設定されている場合、暗号化操作はその時点で当該ファイルの処理をただちに中止します。このフラグは主に、ユーザーのログオン時にキャッシュの暗号化を保証するためにオフラインファイル サービスが使用します。通常、このメソッドを呼び出すクライアントがこのフラグを設定することはありません。

bAsyncBOOLin操作を非同期に実行するかどうかを示します。このパラメーターが TRUE の場合、操作は非同期実行としてスケジュールされ、関数はただちに戻ります。このパラメーターが FALSE の場合、関数は操作の完了時に戻ります。
pIProgressIOfflineFilesSyncProgress*inoptional操作中に進捗イベントを受け取るイベントシンクのインターフェイスです。イベントが不要な場合、このパラメーターには NULL を指定できます。なお、非同期実行の場合はこのパラメーターの指定を強く推奨します。非同期操作の完了を通知される手段は、進捗インターフェイスの実装のみです。

戻り値

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

操作がキャンセルされた場合は HRESULT_FROM_WIN32(ERROR_CANCELLED) を返します。

解説(Remarks)

この操作をキャンセルしても、キャッシュされたファイルは元の暗号化状態には戻りません。そのため、キャッシュが部分的に暗号化された状態、または部分的に未暗号化の状態になることがあります。エラーによって操作が中断された場合も同様の状態になり得ます。この中途半端な状態を解消するには、操作が正常に完了するまで繰り返してください。

また、オフラインファイル サービスは、ユーザーのログオン後にバックグラウンドで自動的に暗号化操作を実行します。これにより、そのユーザーによってキャッシュされたすべてのファイルが、キャッシュの状態に合致した正しい状態 (暗号化済みまたは未暗号化) になります。

キャンセルされたタイミング キャッシュの状態 新たにキャッシュされるファイル
暗号化中 部分的に暗号化された状態 暗号化される
暗号化解除中 部分的に未暗号化の状態 暗号化されない

オフラインファイル キャッシュの現在の暗号化状態は、オフラインファイルのコントロールパネル、または IOfflineFilesCache::GetEncryptionStatus の呼び出しによって確認できます。

呼び出し元は、次の一覧にある進捗コールバックメソッドを実装することで、処理された各ファイルおよびディレクトリの進捗情報を取得できます。

進捗イベント インターフェイス メソッド 説明
IOfflineFilesProgress Begin この操作の開始時に呼び出されます。
IOfflineFilesSimpleProgress ItemBegin 各ファイルの処理開始時に呼び出されます。
IOfflineFilesSimpleProgress ItemResult 各ファイルの暗号化後に呼び出されます。
IOfflineFilesProgress QueryAbort キャンセル要求を検出するため、同期操作中に定期的に呼び出されます。
IOfflineFilesProgress End この操作の終了時に呼び出されます。
vtbl 10 HRESULT FindItem(LPWSTR pszPath, DWORD dwQueryFlags, IOfflineFilesItem** ppItem)

キャッシュ内の特定のファイルまたはディレクトリの項目を検索します。(IOfflineFilesCache.FindItem)

pszPathLPWSTRin検索対象のファイルまたはディレクトリの UNC パスです。
dwQueryFlagsDWORDin

キャッシュ内で項目を特定する際のクエリ処理量に影響するフラグです。このパラメーターには、次のビットフラグを 1 つ以上指定できます。

OFFLINEFILES_ITEM_QUERY_REMOTEINFO (0x00000001)

このフラグは将来の使用のために予約されています。

OFFLINEFILES_ITEM_QUERY_CONNECTIONSTATE (0x00000002)

このフラグを設定すると、検索操作の中でオフラインファイル ストアへの追加の呼び出しが行われ、項目の接続状態 (オンライン/オフライン) に関する情報が取得されます。このフラグを設定しない場合、この追加の処理は行われず、接続状態は要求された時点でオンデマンドに問い合わせられます。

メモ 項目の接続状態が必要になることが分かっている場合は、このフラグを設定するほうがわずかに効率的です。接続状態が不要な場合は、このフラグを設定しないほうが効率的です。

OFFLINEFILES_ITEM_QUERY_LOCALDIRTYBYTECOUNT (0x00000004)

このフラグを設定すると、検索操作の中でオフラインファイル ストアへの追加の呼び出しが行われ、ローカルのオフラインファイル キャッシュ内の該当ファイルについて、未同期 (「ダーティ」) データのバイト数に関する情報が取得されます。

OFFLINEFILES_ITEM_QUERY_REMOTEDIRTYBYTECOUNT (0x00000008)

このフラグは将来の使用のために予約されています。

OFFLINEFILES_ITEM_QUERY_INCLUDETRANSPARENTCACHE (0x00000010)

このフラグを設定すると、検索操作に透過的にキャッシュされた項目が含まれます。

OFFLINEFILES_ITEM_QUERY_ADMIN (0x80000000)

管理者が任意のユーザーによってキャッシュされた項目を検索できるようにします。このフラグが設定されていて、かつ呼び出し元が管理者でない場合、メソッド呼び出しは失敗します。

ppItemIOfflineFilesItem**outキャッシュ項目の IOfflineFilesItem インターフェイスへのポインターです。

戻り値

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

キャッシュエントリが見つからない場合は HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) を返します。

解説(Remarks)

FindItemExFindItem の拡張版であり、キャッシュ項目の列挙で提供されるものと同様のフィルタリング機能を備えています。FindItem の呼び出しは、4 つのフィルターパラメーターをすべて NULL に設定して FindItemEx を呼び出すことと同等です。

vtbl 11 HRESULT FindItemEx(LPWSTR pszPath, IOfflineFilesItemFilter* pIncludeFileFilter, IOfflineFilesItemFilter* pIncludeDirFilter, IOfflineFilesItemFilter* pExcludeFileFilter, IOfflineFilesItemFilter* pExcludeDirFilter, DWORD dwQueryFlags, IOfflineFilesItem** ppItem)

キャッシュ内の特定のファイルまたはディレクトリの項目を検索します。(IOfflineFilesCache.FindItemEx)

pszPathLPWSTRin検索対象のファイルまたはディレクトリの UNC パスです。
pIncludeFileFilterIOfflineFilesItemFilter*inoptional指定した場合、ファイルを含めるかどうかの判定に適用されるフィルターを参照します。このパラメーターは省略可能で、NULL を指定できます。
pIncludeDirFilterIOfflineFilesItemFilter*inoptional指定した場合、ディレクトリを含めるかどうかの判定に適用されるフィルターを参照します。このパラメーターは省略可能で、NULL を指定できます。
pExcludeFileFilterIOfflineFilesItemFilter*inoptional指定した場合、ファイルを除外するかどうかの判定に適用されるフィルターを参照します。このパラメーターは省略可能で、NULL を指定できます。
pExcludeDirFilterIOfflineFilesItemFilter*inoptional指定した場合、ディレクトリを除外するかどうかの判定に適用される「フィルター」を参照します。このパラメーターは省略可能で、NULL を指定できます。
dwQueryFlagsDWORDin

キャッシュ内で項目を特定する際のクエリ処理量に影響するフラグです。このパラメーターには、次のビットフラグを 1 つ以上指定できます。

OFFLINEFILES_ITEM_QUERY_REMOTEINFO (0x00000001)

このフラグは将来の使用のために予約されています。

OFFLINEFILES_ITEM_QUERY_CONNECTIONSTATE (0x00000002)

このフラグを設定すると、検索操作の中でオフラインファイル ストアへの追加の呼び出しが行われ、項目の接続状態 (オンラインまたはオフライン) に関する情報が取得されます。このフラグを設定しない場合、この追加の処理は行われず、接続状態は要求された時点でオンデマンドに問い合わせられます。

メモ 項目の接続状態が必要になることが分かっている場合は、このフラグを設定するほうがわずかに効率的です。接続状態が不要な場合は、このフラグを設定しないほうが効率的です。

OFFLINEFILES_ITEM_QUERY_LOCALDIRTYBYTECOUNT (0x00000004)

このフラグを設定すると、検索操作の中でオフラインファイル ストアへの追加の呼び出しが行われ、ローカルのオフラインファイル キャッシュ内の該当ファイルについて、未同期 (「ダーティ」) データのバイト数に関する情報が取得されます。

OFFLINEFILES_ITEM_QUERY_REMOTEDIRTYBYTECOUNT (0x00000008)

このフラグは将来の使用のために予約されています。

OFFLINEFILES_ITEM_QUERY_INCLUDETRANSPARENTCACHE (0x00000010)

このフラグを設定すると、検索操作に透過的にキャッシュされた項目が含まれます。

OFFLINEFILES_ITEM_QUERY_ADMIN (0x80000000)

管理者が任意のユーザーによってキャッシュされた項目を検索できるようにします。このフラグが設定されていて、かつ呼び出し元が管理者でない場合、メソッド呼び出しは失敗します。

ppItemIOfflineFilesItem**outキャッシュ項目の IOfflineFilesItem インターフェイスへのポインターです。

戻り値

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

キャッシュエントリが見つからない場合は HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) を返します。

解説(Remarks)

FindItemExFindItem の拡張版であり、キャッシュ項目の列挙で提供されるものと同様のフィルタリング機能を備えています。FindItem の呼び出しは、4 つのフィルターパラメーターをすべて NULL に設定して FindItemEx を呼び出すことと同等です。

vtbl 12 HRESULT RenameItem(LPWSTR pszPathOriginal, LPWSTR pszPathNew, BOOL bReplaceIfExists)

キャッシュ内の項目の名前を変更します。

pszPathOriginalLPWSTRin名前を変更する項目 (サーバー、共有、ファイル、ディレクトリ) の完全修飾 UNC パスです。
pszPathNewLPWSTRinpszPathOriginal が指す項目がキャッシュ内に存在する場合に、pszPathOriginal と置き換える新しいパスです。
bReplaceIfExistsBOOLinこのパラメーターは将来の使用のために予約されています。

戻り値

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

解説(Remarks)

このメソッドを使用するには、システム管理者権限が必要です。

メモ 名前変更操作をオフラインファイル キャッシュに反映させるには、システムの再起動が必要です。
pszPathNew パラメーターが参照するパスがオフラインファイル キャッシュ内に既に存在する場合、このメソッドは失敗します。

Windows 8 および Windows Server 2012 以降では、項目の名前変更に IOfflineFilesCache2::RenameItemEx メソッドを使用することもできます。このメソッドはシステム管理者権限やシステムの再起動を必要としません。ただし、項目が現在使用中の場合は失敗します。

vtbl 13 HRESULT GetLocation(LPWSTR* ppszPath)

オフラインファイル キャッシュの現在の完全修飾ディレクトリパスを取得します。

ppszPathLPWSTR*outオフラインファイル キャッシュ ディレクトリの完全修飾パスを含む文字列のアドレスを受け取る、ポインター変数のアドレスです。呼び出しが成功した場合、呼び出し元は CoTaskMemFree 関数を使用して、返されたバッファーを解放する必要があります。

戻り値

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

vtbl 14 HRESULT GetDiskSpaceInformation(ULONGLONG* pcbVolumeTotal, ULONGLONG* pcbLimit, ULONGLONG* pcbUsed, ULONGLONG* pcbUnpinnedLimit, ULONGLONG* pcbUnpinnedUsed)

オフラインファイル キャッシュが使用しているディスク領域の量と、キャッシュの使用量に適用されている上限を取得します。

pcbVolumeTotalULONGLONG*outオフラインファイル キャッシュが置かれているボリュームのサイズ (バイト単位) を受け取ります。
pcbLimitULONGLONG*outオフラインファイル キャッシュに格納できる最大バイト数の上限を受け取ります。
pcbUsedULONGLONG*outオフラインファイル キャッシュ内で固定 (ピン留め) されているファイルおよび自動的にキャッシュされたファイルすべてが現在使用しているバイト数を受け取ります。
pcbUnpinnedLimitULONGLONG*out自動的にキャッシュされるファイルについて、オフラインファイル キャッシュに格納できる最大バイト数の上限を受け取ります。
pcbUnpinnedUsedULONGLONG*outオフラインファイル キャッシュ内で自動的にキャッシュされたファイルすべてが現在使用しているバイト数を受け取ります。

戻り値

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

解説(Remarks)

キャッシュの領域上限は、管理者が IOfflineFilesCache::SetDiskSpaceLimits を使用して変更できます。

vtbl 15 HRESULT SetDiskSpaceLimits(ULONGLONG cbLimit, ULONGLONG cbUnpinnedLimit)

オフラインファイル キャッシュのディスク使用量の上限を設定します。

cbLimitULONGLONGinオフラインファイル キャッシュに格納できる最大バイト数の上限を指定します。
cbUnpinnedLimitULONGLONGin自動的にキャッシュされるファイルについて、オフラインファイル キャッシュに格納できる最大バイト数の上限を指定します。

戻り値

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

解説(Remarks)

呼び出し元はローカルコンピューターの管理者である必要があります。

現在のディスク領域の上限は、IOfflineFilesCache::GetDiskSpaceInformation を呼び出すことで取得できます。

vtbl 16 HRESULT ProcessAdminPinPolicy(IOfflineFilesSyncProgress* pPinProgress, IOfflineFilesSyncProgress* pUnpinProgress)

オフラインファイルに「管理者によって割り当てられたオフラインファイル」グループポリシーを処理させます。

pPinProgressIOfflineFilesSyncProgress*inoptionalオフラインファイル キャッシュ内で項目が固定 (ピン留め) される際に進捗通知を受け取る IOfflineFilesSyncProgress インターフェイスへのポインターです。
pUnpinProgressIOfflineFilesSyncProgress*inoptionalオフラインファイル キャッシュから項目の固定 (ピン留め) が解除される際に進捗通知を受け取る IOfflineFilesSyncProgress インターフェイスへのポインターです。

戻り値

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

解説(Remarks)

「管理者によって割り当てられたオフラインファイル」グループポリシーは、グループポリシーの仕組みを通じて、管理者が特定のユーザーに対して特定のフォルダーをオフラインファイルで固定 (ピン留め) させるための手段を提供します。この関数の主なクライアントは、オフラインファイルのグループポリシー拡張です。ほとんどの展開環境では、この関数を呼び出す必要はありません。グループポリシー拡張が代わりに実行します。

vtbl 17 HRESULT GetSettingObject(LPWSTR pszSettingName, IOfflineFilesSetting** ppSetting)

特定のオフラインファイル設定を表すオブジェクトを作成します。

pszSettingNameLPWSTRin設定の名前 (大文字と小文字を区別しません)。次の値のいずれかを指定します。
ppSettingIOfflineFilesSetting**out設定が存在する場合、そのオブジェクトの IOfflineFilesSetting インターフェイスへのポインターが返されます。

戻り値

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

設定名が無効な場合は HRESULT_FROM_WIN32(ERROR_INVALID_NAME) を返します。

解説(Remarks)

このメソッドは管理者と非管理者のどちらでも使用できます。セキュリティ上の制限は設定ごとに適用されます。たとえば、コンピューター上のすべてのユーザーに適用される設定を変更できるのは管理者のみです。

vtbl 18 HRESULT EnumSettingObjects(IEnumOfflineFilesSettings** ppEnum)

IOfflineFilesSetting のインスタンスの列挙子を作成します。

ppEnumIEnumOfflineFilesSettings**out成功した場合、IEnumOfflineFilesSettings のインスタンスのアドレスを受け取ります。

戻り値

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

解説(Remarks)

既知の設定は、IOfflineFilesCache::GetSettingObject を使用して名前で取得できます。

vtbl 19 HRESULT IsPathCacheable(LPWSTR pszPath, BOOL* pbCacheable, OFFLINEFILES_CACHING_MODE* pShareCachingMode)

指定した UNC パスがオフラインファイル キャッシュ内にあるかどうかを判定します。

pszPathLPWSTRin項目の UNC パスです。
pbCacheableBOOL*out項目がオフラインファイル キャッシュ内にある場合は TRUE、ない場合は FALSE を受け取ります。
pShareCachingModeOFFLINEFILES_CACHING_MODE*out

該当する項目が存在するネットワーク共有フォルダーのキャッシュ構成を示す、次の OFFLINEFILES_CACHING_MODE 列挙値のいずれかを受け取ります。

OFFLINEFILES_CACHING_MODE_NONE (0)

キャッシュモードの値が見つかりませんでした。この値は、項目がキャッシュ可能でない場合、またはエラーが発生した場合に使用されます。

OFFLINEFILES_CACHING_MODE_NOCACHING (1)

共有フォルダーはキャッシュを許可しないよう構成されています。

OFFLINEFILES_CACHING_MODE_MANUAL (2)

共有フォルダーは手動キャッシュを許可するよう構成されています。

OFFLINEFILES_CACHING_MODE_AUTO_DOC (3)

共有フォルダーはドキュメントの自動キャッシュを許可するよう構成されています。

OFFLINEFILES_CACHING_MODE_AUTO_PROGANDDOC (4)

共有フォルダーはプログラムおよびドキュメントの自動キャッシュを許可するよう構成されています。

戻り値

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

解説(Remarks)

返されるキャッシュモードの値は、NetShareGetInfo が返す SHARE_INFO_1005 に関連付けられた CSC_MASK の値と等価です。値の対応は次のとおりです。

OFFLINEFILES_CACHING_MODE の値 SHARE_INFO_1005 の値
OFFLINEFILES_CACHING_MODE_NOCACHING 0
OFFLINEFILES_CACHING_MODE_MANUAL CSC_CACHE_MANUAL_REINT
OFFLINEFILES_CACHING_MODE_AUTO_DOC CSC_CACHE_AUTO_REINT
OFFLINEFILES_CACHING_MODE_AUTO_PROGANDDOC CSC_CACHE_VDO

これらの設定は、共有フォルダーの [共有] プロパティページで [キャッシュ] ボタンをクリックするか、net share /cache コマンドを使用することで、サーバー上の共有フォルダーの属性として構成されます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IOfflineFilesCache "{855D6203-7914-48B9-8D40-4C56F5ACFFC5}"
#usecom global IOfflineFilesCache IID_IOfflineFilesCache "{48C6BE7C-3871-43CC-B46F-1449A1BB2FF3}"
#comfunc global IOfflineFilesCache_Synchronize              3 sptr,var,int,int,int,sptr,sptr,var
#comfunc global IOfflineFilesCache_DeleteItems              4 var,int,int,int,sptr
#comfunc global IOfflineFilesCache_DeleteItemsForUser       5 wstr,var,int,int,int,sptr
#comfunc global IOfflineFilesCache_Pin                      6 sptr,var,int,int,int,int,sptr
#comfunc global IOfflineFilesCache_Unpin                    7 sptr,var,int,int,int,int,sptr
#comfunc global IOfflineFilesCache_GetEncryptionStatus      8 var,var
#comfunc global IOfflineFilesCache_Encrypt                  9 sptr,int,int,int,sptr
#comfunc global IOfflineFilesCache_FindItem                 10 wstr,int,sptr
#comfunc global IOfflineFilesCache_FindItemEx               11 wstr,sptr,sptr,sptr,sptr,int,sptr
#comfunc global IOfflineFilesCache_RenameItem               12 wstr,wstr,int
#comfunc global IOfflineFilesCache_GetLocation              13 var
#comfunc global IOfflineFilesCache_GetDiskSpaceInformation  14 var,var,var,var,var
#comfunc global IOfflineFilesCache_SetDiskSpaceLimits       15 int64,int64
#comfunc global IOfflineFilesCache_ProcessAdminPinPolicy    16 sptr,sptr
#comfunc global IOfflineFilesCache_GetSettingObject         17 wstr,sptr
#comfunc global IOfflineFilesCache_EnumSettingObjects       18 sptr
#comfunc global IOfflineFilesCache_IsPathCacheable          19 wstr,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。