Win32 API 日本語リファレンス
ホームSecurity.Cryptography.Certificates › ICertPropertyBackedUp

ICertPropertyBackedUp

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID728ab338-217d-11da-b2a4-000e7bbb2b09継承元ICertProperty呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl14

公式ドキュメント

証明書がバックアップされているかどうか、およびバックアップされている場合は保存された日時を識別する外部証明書プロパティを表します。

メソッド 4

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 14 HRESULT InitializeFromCurrentTime(VARIANT_BOOL BackedUpValue)

Boolean 値と現在のシステム日時からプロパティを初期化します。

BackedUpValueVARIANT_BOOLin証明書がバックアップされているかどうかを識別する VARIANT_BOOL 変数。

戻り値

関数が成功した場合、S_OK を返します。

関数が失敗した場合、エラーを示す HRESULT 値を返します。使用される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

戻り値/値 説明
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
オブジェクトは既に初期化されています。
HRESULT_FROM_WIN32(ERROR_INVALID_DATA)
指定された時刻が無効です。

解説(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 プロパティを呼び出します。

vtbl 15 HRESULT Initialize(VARIANT_BOOL BackedUpValue, DOUBLE Date)

Boolean 値と日付からオブジェクトを初期化します。

BackedUpValueVARIANT_BOOLin証明書がバックアップされているかどうかを識別する VARIANT_BOOL 変数。
DateDOUBLEin証明書が最後にバックアップされた日時を識別する DATE 変数。

戻り値

関数が成功した場合、S_OK を返します。

関数が失敗した場合、エラーを示す HRESULT 値を返します。使用される可能性のある値には、次の表に示すものが含まれますが、これらに限定されません。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

戻り値/値 説明
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
オブジェクトは既に初期化されています。
HRESULT_FROM_WIN32(ERROR_INVALID_DATA)
指定された時刻が無効です。

解説(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 プロパティを呼び出します。

vtbl 16 HRESULT get_BackedUpValue(VARIANT_BOOL* pValue)

証明書がバックアップされたかどうかを識別する Boolean 値を取得します。

pValueVARIANT_BOOL*out証明書がバックアップ済みであるか否かを示す真偽値を受け取る出力先である。

解説(Remarks)

BackedUpValue プロパティ値を設定するには、Initialize メソッドまたは InitializeFromCurrentTime メソッドを呼び出します。

vtbl 17 HRESULT get_BackedUpTime(DOUBLE* pDate)

証明書がバックアップされた日時を取得します。

pDateDOUBLE*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 の 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_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 不要)。