IDataManager
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
データコレクターによって生成されたデータを管理します。これにはレポート生成、データ保持ポリシー、データ転送が含まれます。このインターフェイスを取得するには、IDataCollectorSet::DataManager プロパティにアクセスします。
解説(Remarks)
IDataCollectorSet::SetXml メソッドを呼び出してこのオブジェクトを初期化する際に使用できる XML の例については、IDataCollectorSet の「解説」セクションを参照してください。オブジェクトを作成するための XML を指定するときは、設定したいプロパティに対応する要素のみを指定できます。プロパティを指定しない場合、PLA は既定値を提供します。セットの XML を取得すると、その XML にはすべての要素が含まれます。
メソッド 25
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
データマネージャーが実行可能かどうかを示す値を取得または設定します。(Get)
| pfEnabled | VARIANT_BOOL* | out | データ管理が有効かどうかを受け取るポインタである。 |
データマネージャーが実行可能かどうかを示す値を取得または設定します。(Put)
| fEnabled | VARIANT_BOOL | in | データ管理を有効にするかどうかを指定する。 |
データを収集する前に、データマネージャーが最小空きディスク容量などの課された制限をチェックすべきかどうかを示す値を取得または設定します。(Get)
| pfCheck | VARIANT_BOOL* | out | 実行前にチェックを行うかどうかを受け取るポインタである。 |
データを収集する前に、データマネージャーが最小空きディスク容量などの課された制限をチェックすべきかどうかを示す値を取得または設定します。(Put)
| fCheck | VARIANT_BOOL | in | 実行前にチェックを行うかどうかを指定する。 |
データ収集を開始する前に必要となる最小空きディスク容量を取得または設定します。(Get)
| MinFreeDisk | DWORD* | out | 必要な最小空きディスク容量を受け取るポインタである。 |
解説(Remarks)
この最小値は、IDataCollectorSet::RootPath プロパティで指定されたフォルダーに適用されます。IDataManager::CheckBeforeRunning プロパティがこの制限をチェックします。データマネージャーは実行時にもこの制限をチェックします。
データ収集を開始する前に必要となる最小空きディスク容量を取得または設定します。(Put)
| MinFreeDisk | DWORD | in | 必要な最小空きディスク容量を指定する。 |
解説(Remarks)
この最小値は、IDataCollectorSet::RootPath プロパティで指定されたフォルダーに適用されます。IDataManager::CheckBeforeRunning プロパティがこの制限をチェックします。データマネージャーは実行時にもこの制限をチェックします。
セット内のすべてのデータコレクターが使用する最大ディスク容量を取得または設定します。(Get)
| pulMaxSize | DWORD* | out | 保持データの最大サイズを受け取るポインタである。 |
解説(Remarks)
この最大値は、IDataCollectorSet::RootPath プロパティで指定されたパスの下にあるすべてのサブフォルダー内のすべてのファイルに適用されます。
この値は、データマネージャーによって次のタイミングで使用されます。
- IDataManager::CheckBeforeRunning プロパティの値が VARIANT_TRUE の場合、データコレクターセットが開始する前。最大サイズを超えている場合、マネージャーはデータコレクターセットの実行を阻止します。
- 収集の完了後。最大サイズを超えている場合、データマネージャーは合計サイズが最大サイズを下回るまで、(IDataManager::ResourcePolicy プロパティに従って)フォルダーの削除を開始します。
- IDataCollector::LogCircular プロパティを True に設定し、IDataCollectorSet::SegmentMaxSize プロパティを希望する最大サイズに設定します。
- IDataCollector::LogCircular プロパティを False に設定し、IDataCollectorSet::SegmentMaxSize プロパティを最大フォルダーサイズと等しく設定し、IDataCollectorSet::Segment プロパティを False に設定します。
セット内のすべてのデータコレクターが使用する最大ディスク容量を取得または設定します。(Put)
| ulMaxSize | DWORD | in | 保持データの最大サイズを指定する。 |
解説(Remarks)
この最大値は、IDataCollectorSet::RootPath プロパティで指定されたパスの下にあるすべてのサブフォルダー内のすべてのファイルに適用されます。
この値は、データマネージャーによって次のタイミングで使用されます。
- IDataManager::CheckBeforeRunning プロパティの値が VARIANT_TRUE の場合、データコレクターセットが開始する前。最大サイズを超えている場合、マネージャーはデータコレクターセットの実行を阻止します。
- 収集の完了後。最大サイズを超えている場合、データマネージャーは合計サイズが最大サイズを下回るまで、(IDataManager::ResourcePolicy プロパティに従って)フォルダーの削除を開始します。
- IDataCollector::LogCircular プロパティを True に設定し、IDataCollectorSet::SegmentMaxSize プロパティを希望する最大サイズに設定します。
- IDataCollector::LogCircular プロパティを False に設定し、IDataCollectorSet::SegmentMaxSize プロパティを最大フォルダーサイズと等しく設定し、IDataCollectorSet::Segment プロパティを False に設定します。
セット内のすべてのデータコレクターが使用するフォルダーの最大数を取得または設定します。(Get)
| pulMaxFolderCount | DWORD* | out | 保持する最大フォルダ数を受け取るポインタである。 |
解説(Remarks)
この最大値は、IDataCollectorSet::RootPath プロパティで指定されたパスの下にあるすべてのサブフォルダーに適用されます。IDataManager::CheckBeforeRunning プロパティがこの制限をチェックします。データマネージャーは実行時にもこの制限をチェックします。
セット内のすべてのデータコレクターが使用するフォルダーの最大数を取得または設定します。(Put)
| ulMaxFolderCount | DWORD | in | 保持する最大フォルダ数を指定する。 |
解説(Remarks)
この最大値は、IDataCollectorSet::RootPath プロパティで指定されたパスの下にあるすべてのサブフォルダーに適用されます。IDataManager::CheckBeforeRunning プロパティがこの制限をチェックします。データマネージャーは実行時にもこの制限をチェックします。
ディスクリソースの制限のいずれかを超えた場合に実行するアクションを取得または設定します。(Get)
| pPolicy | ResourcePolicy* | out | 現在のリソースポリシーを受け取るポインタである。 |
解説(Remarks)
フォルダーは、ディスクリソースの条件が満たされるまで、リソースポリシーに基づいて削除されます。たとえば、最大サイズが 7 MB で現在のサイズが 10 MB の場合、PLA は現在のサイズが 7 MB 以下になるまでフォルダーを削除します。最初に削除されるフォルダーが 3 MB の場合、PLA はそのフォルダーを削除した後、現在のサイズが最大サイズと等しくなるため、フォルダーの削除を停止します。最初に削除されるフォルダーが 9 MB の場合、PLA はそのフォルダーを削除した後、現在のサイズが 1 MB になり、これも条件を満たすため、フォルダーの削除を停止します。
ディスクリソースの制限のいずれかを超えた場合に実行するアクションを取得または設定します。(Put)
| Policy | ResourcePolicy | in | 設定するリソースポリシーを表す ResourcePolicy を指定する。 |
解説(Remarks)
フォルダーは、ディスクリソースの条件が満たされるまで、リソースポリシーに基づいて削除されます。たとえば、最大サイズが 7 MB で現在のサイズが 10 MB の場合、PLA は現在のサイズが 7 MB 以下になるまでフォルダーを削除します。最初に削除されるフォルダーが 3 MB の場合、PLA はそのフォルダーを削除した後、現在のサイズが最大サイズと等しくなるため、フォルダーの削除を停止します。最初に削除されるフォルダーが 9 MB の場合、PLA はそのフォルダーを削除した後、現在のサイズが 1 MB になり、これも条件を満たすため、フォルダーの削除を停止します。
経過時間とサイズの条件が満たされたときに、データコレクターセット内の各フォルダーに対して実行するアクションを管理するために使用するコレクションを取得します。
| Actions | IFolderActionCollection** | out | 現在のフォルダアクションのコレクションを受け取るポインタである。 |
TraceRpt.exe アプリケーションが生成するレポートをカスタマイズするために使用するスキーマを取得または設定します。(Get)
| ReportSchema | LPWSTR* | out | 現在のレポートのスキーマを受け取るポインタである。 |
TraceRpt.exe アプリケーションが生成するレポートをカスタマイズするために使用するスキーマを取得または設定します。(Put)
| ReportSchema | LPWSTR | in | レポートのスキーマを設定する。 |
IDataManager::RuleTargetFileName プロパティのファイルを XML から HTML に変換した結果として得られる HTML ファイルの名前を取得または設定します。(Get)
| pbstrFilename | LPWSTR* | out | レポートファイル名を受け取るポインタである。 |
解説(Remarks)
詳細については、DataManagerSteps 列挙型の plaCreateHtml 値を参照してください。
IDataManager::RuleTargetFileName プロパティのファイルを XML から HTML に変換した結果として得られる HTML ファイルの名前を取得または設定します。(Put)
| pbstrFilename | LPWSTR | in | 設定するレポートファイル名を指定する。 |
解説(Remarks)
詳細については、DataManagerSteps 列挙型の plaCreateHtml 値を参照してください。
TraceRpt.exe アプリケーションが作成するレポートファイルの名前を取得または設定します。(IDataManager.get_RuleTargetFileName)
| Filename | LPWSTR* | out | ルール適用対象のファイル名を受け取るポインタである。 |
解説(Remarks)
PLA は、IDataManager::Run メソッドの Steps パラメーターに DataManagerSteps 列挙型の plaCreateReport 値を含めた場合にのみ、このファイル名を使用します。
レポートの内容を指定するには、IDataManager::ReportSchema プロパティを使用します。レポートの作成後にその内容を変更するには、IDataManager::Rules プロパティを使用します。
TraceRpt.exe アプリケーションが作成するレポートファイルの名前を取得または設定します。(IDataManager.put_RuleTargetFileName)
| Filename | LPWSTR | in | ルール適用対象のファイル名を指定する。 |
解説(Remarks)
PLA は、IDataManager::Run メソッドの Steps パラメーターに DataManagerSteps 列挙型の plaCreateReport 値を含めた場合にのみ、このファイル名を使用します。
レポートの内容を指定するには、IDataManager::ReportSchema プロパティを使用します。レポートの作成後にその内容を変更するには、IDataManager::Rules プロパティを使用します。
イベントファイルの名前を取得または設定します。(Get)
| pbstrFilename | LPWSTR* | out | イベントファイル名を受け取るポインタである。 |
解説(Remarks)
PLA は、IDataManager::Run メソッドの Steps パラメーターに DataManagerSteps 列挙型の plaCreateReport 値を含め、かつデータ収集セットにトレースデータコレクターが含まれている場合にのみ、このファイル名を使用します。
イベントファイルの名前を取得または設定します。(Put)
| pbstrFilename | LPWSTR | in | 設定するイベントファイル名を指定する。 |
解説(Remarks)
PLA は、IDataManager::Run メソッドの Steps パラメーターに DataManagerSteps 列挙型の plaCreateReport 値を含め、かつデータ収集セットにトレースデータコレクターが含まれている場合にのみ、このファイル名を使用します。
レポートに適用するルールを取得または設定します。(Get)
| pbstrXml | LPWSTR* | out | ルールを定義する XML を受け取るポインタである。 |
解説(Remarks)
ルールは、レポートの生成後にその内容を変更します。TraceRpt が生成する内容を指定するには、IDataManager::ReportSchema を参照してください。
次のスキーマは、指定できるルールを定義します。Rules 要素がルートノードです。1 つ以上の Group 要素を指定でき、各 Group 要素には 1 つ以上の Rule 要素を含めることができます。Help 要素は省略可能なユーザー定義要素です。Step 要素は、一連の条件と、その条件が満たされた場合に実行される関連アクションを定義します。
<Rules>
<Include name="" fatal="true|false"/>
<Group name="" enabled="true|false">
<Rule name="" enabled="true|false">
<Help/>
<Step/>
</Rule>
</Group>
</Rules>
<Step select="" fatal="true|false" sortType="first|max|min" sortValue="" sortDataType="">
<UserInput/>
<Exists>
<When/>
<Otherwise/>
</Exists>
<Otherwise/>
</Step>
<UserInput name="" expression="">
<Description/>
</UserInput>
<When expression="" matchRE="">
<Action/>
</When>
...
<Otherwise>
<Action/>
</Otherwise>
<Variable name="" expression="">
</Variable>
<Warning name="">
</Warning>
<Notify type="" code="" severity="" title="">
</Notify>
<Insert select="">
<Attribute name="" value=""/>
<Node axis=""/>
</Insert>
レポートに適用するルールを取得または設定します。(Put)
| bstrXml | LPWSTR | in | ルールを定義する XML を指定する。 |
解説(Remarks)
ルールは、レポートの生成後にその内容を変更します。TraceRpt が生成する内容を指定するには、IDataManager::ReportSchema を参照してください。
次のスキーマは、指定できるルールを定義します。Rules 要素がルートノードです。1 つ以上の Group 要素を指定でき、各 Group 要素には 1 つ以上の Rule 要素を含めることができます。Help 要素は省略可能なユーザー定義要素です。Step 要素は、一連の条件と、その条件が満たされた場合に実行される関連アクションを定義します。
<Rules>
<Include name="" fatal="true|false"/>
<Group name="" enabled="true|false">
<Rule name="" enabled="true|false">
<Help/>
<Step/>
</Rule>
</Group>
</Rules>
<Step select="" fatal="true|false" sortType="first|max|min" sortValue="" sortDataType="">
<UserInput/>
<Exists>
<When/>
<Otherwise/>
</Exists>
<Otherwise/>
</Step>
<UserInput name="" expression="">
<Description/>
</UserInput>
<When expression="" matchRE="">
<Action/>
</When>
...
<Otherwise>
<Action/>
</Otherwise>
<Variable name="" expression="">
</Variable>
<Warning name="">
</Warning>
<Notify type="" code="" severity="" title="">
</Notify>
<Insert select="">
<Attribute name="" value=""/>
<Node axis=""/>
</Insert>
データマネージャーを手動で実行します。
| Steps | DataManagerSteps | in | フォルダーアクションとリソースポリシーを適用するかどうか、およびレポートの生成方法を決定します。指定可能なステップについては、DataManagerSteps 列挙型を参照してください。 |
| bstrFolder | LPWSTR | in | レポートの生成に使用されるファイルを含む、IDataCollectorSet::RootPath プロパティの下のフォルダー。NULL の場合、PLA はコレクション内のすべてのファイルを使用します。このフォルダーは、Steps パラメーターに plaCreateReport または plaRunRules が含まれる場合にのみ使用されます。 |
| Errors | IValueMap** | out | 発生したエラーを取得するために使用する IValueMap インターフェイス。この値マップには、エラーが発生したディレクトリの一覧とエラーコードを含めることができます。エラーがなかった場合、IValueMap::Count プロパティは 0 になります。 |
戻り値
成功した場合は S_OK を返します。
解説(Remarks)
データ管理は現在のプロセス内で実行され、データ管理のステップが完了するまでブロックします。
データコレクターセットの実行が終了したときにデータマネージャーを自動的に実行するには、IDataManager::Enabled プロパティを VARIANT_TRUE に設定します。
指定した CAB ファイルを展開します。
| CabFilename | LPWSTR | in | 展開する CAB ファイルの名前。 |
| DestinationPath | LPWSTR | in | CAB ファイルを配置するパス。 |
戻り値
成功した場合は S_OK を返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDataManager "{03837541-098B-11D8-9414-505054503030}" #usecom global IDataManager IID_IDataManager "{}" #comfunc global IDataManager_get_Enabled 7 var #comfunc global IDataManager_put_Enabled 8 int #comfunc global IDataManager_get_CheckBeforeRunning 9 var #comfunc global IDataManager_put_CheckBeforeRunning 10 int #comfunc global IDataManager_get_MinFreeDisk 11 var #comfunc global IDataManager_put_MinFreeDisk 12 int #comfunc global IDataManager_get_MaxSize 13 var #comfunc global IDataManager_put_MaxSize 14 int #comfunc global IDataManager_get_MaxFolderCount 15 var #comfunc global IDataManager_put_MaxFolderCount 16 int #comfunc global IDataManager_get_ResourcePolicy 17 var #comfunc global IDataManager_put_ResourcePolicy 18 int #comfunc global IDataManager_get_FolderActions 19 sptr #comfunc global IDataManager_get_ReportSchema 20 var #comfunc global IDataManager_put_ReportSchema 21 wstr #comfunc global IDataManager_get_ReportFileName 22 var #comfunc global IDataManager_put_ReportFileName 23 wstr #comfunc global IDataManager_get_RuleTargetFileName 24 var #comfunc global IDataManager_put_RuleTargetFileName 25 wstr #comfunc global IDataManager_get_EventsFileName 26 var #comfunc global IDataManager_put_EventsFileName 27 wstr #comfunc global IDataManager_get_Rules 28 var #comfunc global IDataManager_put_Rules 29 wstr #comfunc global IDataManager_Run 30 int,wstr,sptr #comfunc global IDataManager_Extract 31 wstr,wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IDataManager "{03837541-098B-11D8-9414-505054503030}" #usecom global IDataManager IID_IDataManager "{}" #comfunc global IDataManager_get_Enabled 7 sptr #comfunc global IDataManager_put_Enabled 8 int #comfunc global IDataManager_get_CheckBeforeRunning 9 sptr #comfunc global IDataManager_put_CheckBeforeRunning 10 int #comfunc global IDataManager_get_MinFreeDisk 11 sptr #comfunc global IDataManager_put_MinFreeDisk 12 int #comfunc global IDataManager_get_MaxSize 13 sptr #comfunc global IDataManager_put_MaxSize 14 int #comfunc global IDataManager_get_MaxFolderCount 15 sptr #comfunc global IDataManager_put_MaxFolderCount 16 int #comfunc global IDataManager_get_ResourcePolicy 17 sptr #comfunc global IDataManager_put_ResourcePolicy 18 int #comfunc global IDataManager_get_FolderActions 19 sptr #comfunc global IDataManager_get_ReportSchema 20 sptr #comfunc global IDataManager_put_ReportSchema 21 wstr #comfunc global IDataManager_get_ReportFileName 22 sptr #comfunc global IDataManager_put_ReportFileName 23 wstr #comfunc global IDataManager_get_RuleTargetFileName 24 sptr #comfunc global IDataManager_put_RuleTargetFileName 25 wstr #comfunc global IDataManager_get_EventsFileName 26 sptr #comfunc global IDataManager_put_EventsFileName 27 wstr #comfunc global IDataManager_get_Rules 28 sptr #comfunc global IDataManager_put_Rules 29 wstr #comfunc global IDataManager_Run 30 int,wstr,sptr #comfunc global IDataManager_Extract 31 wstr,wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。