ICertPropertyBackedUp
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
証明書がバックアップされているかどうか、およびバックアップされている場合は保存された日時を識別する外部証明書プロパティを表します。
メソッド 4
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
Boolean 値と現在のシステム日時からプロパティを初期化します。
| BackedUpValue | VARIANT_BOOL | in | 証明書がバックアップされているかどうかを識別する VARIANT_BOOL 変数。 |
戻り値
関数が成功した場合、S_OK を返します。
関数が失敗した場合、エラーを示す HRESULT 値を返します。使用される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
| 戻り値/値 | 説明 |
|---|---|
|
オブジェクトは既に初期化されています。 |
|
指定された時刻が無効です。 |
解説(Remarks)
内部的には、InitializeFromCurrentTime は Windows SDK の GetSystemTimeAsFileTime 関数を呼び出します。日付は 8 バイトの実数値として格納され、1900 年 1 月 1 日から 9999 年 12 月 31 日までの日付を表します(両端を含む)。値 2.0 は 1900 年 1 月 1 日を、3.0 は 1900 年 1 月 2 日を表します。値に 1 を加算すると日付が 1 日進みます。値の小数部は時刻を表します。したがって、2.5 は 1900 年 1 月 1 日の 12:00 を、3.25 は 1900 年 1 月 2 日の 06:00 を表します。
1950 年から 2049 年までの日付(両端を含む)については、日時は YYMMDDHHMMSS 形式の UTC 時刻としてエンコードされます。1950 年より前または 2049 年より後の日付については、エンコードされた一般化時刻(generalized time)が使用されます。エンコードされた一般化時刻は YYYYMMDDHHMMSSMMM 形式で、4 桁の年を使用し、ミリ秒単位の精度を持ちます。
プロパティを証明書に関連付けるには、SetValueOnCertificate メソッドを呼び出します。日付を取得するには、BackedUpTime プロパティを呼び出します。証明書がバックアップされたかどうかを識別する Boolean 値を取得するには、BackedUpValue プロパティを呼び出します。
Boolean 値と日付からオブジェクトを初期化します。
| BackedUpValue | VARIANT_BOOL | in | 証明書がバックアップされているかどうかを識別する VARIANT_BOOL 変数。 |
| Date | DOUBLE | in | 証明書が最後にバックアップされた日時を識別する DATE 変数。 |
戻り値
関数が成功した場合、S_OK を返します。
関数が失敗した場合、エラーを示す HRESULT 値を返します。使用される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
| 戻り値/値 | 説明 |
|---|---|
|
オブジェクトは既に初期化されています。 |
|
指定された時刻が無効です。 |
解説(Remarks)
日付は 8 バイトの実数値として格納され、1900 年 1 月 1 日から 9999 年 12 月 31 日までの日付を表します(両端を含む)。値 2.0 は 1900 年 1 月 1 日を、3.0 は 1900 年 1 月 2 日を表します。値に 1 を加算すると日付が 1 日進みます。値の小数部は時刻を表します。したがって、2.5 は 1900 年 1 月 1 日の 12:00 を、3.25 は 1900 年 1 月 2 日の 06:00 を表します。
1950 年から 2049 年までの日付(両端を含む)については、日時は YYMMDDHHMMSS 形式の UTC 時刻としてエンコードされます。1950 年より前または 2049 年より後の日付については、エンコードされた一般化時刻(generalized time)が使用されます。エンコードされた一般化時刻は YYYYMMDDHHMMSSMMM 形式で、4 桁の年を使用し、ミリ秒単位の精度を持ちます。
プロパティを証明書に関連付けるには、SetValueOnCertificate メソッドを呼び出します。日付を取得するには、BackedUpTime プロパティを呼び出します。証明書がバックアップされたかどうかを識別する Boolean 値を取得するには、BackedUpValue プロパティを呼び出します。
証明書がバックアップされたかどうかを識別する Boolean 値を取得します。
| pValue | VARIANT_BOOL* | out | 証明書がバックアップ済みであるか否かを示す真偽値を受け取る出力先である。 |
解説(Remarks)
BackedUpValue プロパティ値を設定するには、Initialize メソッドまたは InitializeFromCurrentTime メソッドを呼び出します。
証明書がバックアップされた日時を取得します。
| pDate | DOUBLE* | out | バックアップを実施した日時を表す VARIANT 形式 (DOUBLE) の日付値を受け取る出力先である。 |
解説(Remarks)
BackedUpTime 値を設定するには、Initialize メソッドまたは InitializeFromCurrentTime メソッドを呼び出します。
日付は 8 バイトの実数値として格納され、1900 年 1 月 1 日から 9999 年 12 月 31 日までの日付を表します(両端を含む)。値 2.0 は 1900 年 1 月 1 日を、3.0 は 1900 年 1 月 2 日を表します。値に 1 を加算すると日付が 1 日進みます。値の小数部は時刻を表します。したがって、2.5 は 1900 年 1 月 1 日の 12:00 を、3.25 は 1900 年 1 月 2 日の 06:00 を表します。
1950 年から 2049 年までの日付(両端を含む)については、日時は YYMMDDHHMMSS 形式の UTC 時刻としてエンコードされます。1950 年より前または 2049 年より後の日付については、エンコードされた一般化時刻(generalized time)が使用されます。エンコードされた一般化時刻は YYYYMMDDHHMMSSMMM 形式で、4 桁の年を使用し、ミリ秒単位の精度を持ちます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ICertPropertyBackedUp "{728AB338-217D-11DA-B2A4-000E7BBB2B09}" #usecom global ICertPropertyBackedUp IID_ICertPropertyBackedUp "{}" #comfunc global ICertPropertyBackedUp_InitializeFromCurrentTime 14 int #comfunc global ICertPropertyBackedUp_Initialize 15 int,double #comfunc global ICertPropertyBackedUp_get_BackedUpValue 16 var #comfunc global ICertPropertyBackedUp_get_BackedUpTime 17 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_ICertPropertyBackedUp "{728AB338-217D-11DA-B2A4-000E7BBB2B09}" #usecom global ICertPropertyBackedUp IID_ICertPropertyBackedUp "{}" #comfunc global ICertPropertyBackedUp_InitializeFromCurrentTime 14 int #comfunc global ICertPropertyBackedUp_Initialize 15 int,double #comfunc global ICertPropertyBackedUp_get_BackedUpValue 16 sptr #comfunc global ICertPropertyBackedUp_get_BackedUpTime 17 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。