IBitsPeerCacheRecord
COM公式ドキュメント
IBitsPeerCacheRecord は、キャッシュ内のファイルに関する情報を取得するために使用します。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
キャッシュ内のレコードを一意に識別する識別子を取得します。
| pVal | GUID* | out | キャッシュ内のレコードを一意に識別する識別子。 |
戻り値
このメソッドは、次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
キャッシュされたファイルの元の URL を取得します。
| pVal | LPWSTR* | out | キャッシュされたファイルの元の URL を格納する null 終端文字列。使用後は CoTaskMemFree 関数を呼び出して ppOriginUrl を解放してください。 |
戻り値
このメソッドは、次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
解説(Remarks)
IBackgroundCopyJobHttpOptions::SetSecurityFlags が BG_HTTP_REDIRECT_POLICY_ALLOW_REPORT または BG_HTTP_REDIRECT_POLICY_DISALLOW に設定されている場合、この URL は BITS ジョブで元々指定された URL と異なることがあります。
ファイルのサイズを取得します。
| pVal | ULONGLONG* | out | ファイルのサイズ (バイト単位)。 |
戻り値
このメソッドは、次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
サーバー上でファイルが最後に変更された日時を取得します。
| pVal | FILETIME* | out | サーバー上でファイルが最後に変更された日時。時刻は FILETIME として指定されます。 |
戻り値
このメソッドは、次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
ファイルに最後にアクセスした日時を取得します。
| pVal | FILETIME* | out | ファイルに最後にアクセスした日時。時刻は FILETIME として指定されます。 |
戻り値
このメソッドは、次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
ファイルが検証済みかどうかを判定します。
戻り値
解説(Remarks)
ファイルを検証すると、そのファイルは提供可能になります。ファイルを検証するには、IBackgroundCopyFile3::SetValidationState メソッドを呼び出します。アプリケーションが SetValidationState を呼び出さずに IBackgroundCopyJob::Complete を呼び出した場合、ファイルは暗黙的に検証されます。検証後にファイルをキャッシュから削除するには、IBitsPeerCacheAdministration::DeleteUrl および IBitsPeerCacheAdministration::DeleteRecord を参照してください。
キャッシュ内に存在するファイルの範囲を取得します。
| pRangeCount | DWORD* | out | ppRanges の要素数。 |
| ppRanges | BG_FILE_RANGE** | out | キャッシュ内に存在するファイルの範囲を指定する BG_FILE_RANGE 構造体の配列。使用後は CoTaskMemFree 関数を呼び出して ppRanges を解放してください。 |
戻り値
このメソッドは、次の戻り値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 |
解説(Remarks)
このメソッドは、常に少なくとも 1 つの範囲 (ファイル全体) を返します。アプリケーションが IBackgroundCopyJob3::AddFileWithRanges を呼び出してファイルの 1 つ以上の範囲をダウンロードした場合は、複数の範囲が返されることがあります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IBitsPeerCacheRecord "{659CDEAF-489E-11D9-A9CD-000D56965251}" #usecom global IBitsPeerCacheRecord IID_IBitsPeerCacheRecord "{}" #comfunc global IBitsPeerCacheRecord_GetId 3 var #comfunc global IBitsPeerCacheRecord_GetOriginUrl 4 var #comfunc global IBitsPeerCacheRecord_GetFileSize 5 var #comfunc global IBitsPeerCacheRecord_GetFileModificationTime 6 var #comfunc global IBitsPeerCacheRecord_GetLastAccessTime 7 var #comfunc global IBitsPeerCacheRecord_IsFileValidated 8 #comfunc global IBitsPeerCacheRecord_GetFileRanges 9 var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IBitsPeerCacheRecord "{659CDEAF-489E-11D9-A9CD-000D56965251}" #usecom global IBitsPeerCacheRecord IID_IBitsPeerCacheRecord "{}" #comfunc global IBitsPeerCacheRecord_GetId 3 sptr #comfunc global IBitsPeerCacheRecord_GetOriginUrl 4 sptr #comfunc global IBitsPeerCacheRecord_GetFileSize 5 sptr #comfunc global IBitsPeerCacheRecord_GetFileModificationTime 6 sptr #comfunc global IBitsPeerCacheRecord_GetLastAccessTime 7 sptr #comfunc global IBitsPeerCacheRecord_IsFileValidated 8 #comfunc global IBitsPeerCacheRecord_GetFileRanges 9 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。