Win32 API 日本語リファレンス
ホームMedia.PictureAcquisition › IPhotoAcquireSettings

IPhotoAcquireSettings

COM
IID00f2b868-dd67-487c-9553-049240767e91継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IPhotoAcquireSettings インターフェイスは、ファイル名の書式など、画像取得の設定を扱うために使用します。

メソッド 13

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

vtbl 3 HRESULT InitializeFromRegistry(LPWSTR pszRegistryKey)

InitializeFromRegistry メソッドは、設定の初期化に使用するレジストリキーを指定します。

pszRegistryKeyLPWSTRinレジストリキーを格納した、null で終わる文字列へのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
E_NOTIMPL
このメソッドはまだ実装されていません。

解説(Remarks)

現時点では、レジストリの構造はまだ確定していません。

vtbl 4 HRESULT SetFlags(DWORD dwPhotoAcquireFlags)

SetFlags メソッドは、写真取得フラグを設定します。

dwPhotoAcquireFlagsDWORDin写真取得フラグを格納したダブルワード値。

戻り値

このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
vtbl 5 HRESULT SetOutputFilenameTemplate(LPWSTR pszTemplate)

SetOutputFilenameTemplate メソッドは、ファイル名の書式を指定する書式文字列(テンプレート)を指定します。

pszTemplateLPWSTRin書式文字列を格納した、null で終わる文字列へのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

書式文字列は、パスのリテラルとトークンが混在したものです。書式文字列は次のようになります。


$(MyPicturesFolder)\$(DateAcquired), $(EventName)\$(EventName) $(SequenceNumber).$(OriginalExtension)

トークンの書式は次のようになります。ここで OptionalPrefixOptionSuffix は、TokenIdentifier の置換結果が長さ 0 の文字列になる場合は抑制されます。


$([OptionalPrefix]TokenIdentifier:SubToken[OptionalSuffix]|AlternateString)

キャレット("^")はエスケープ文字であるため、"^$" は最終的なパスでは "$" になります。

かっこ(丸かっこ・角かっこ)はトークン内ではリテラルとして使用できませんが、トークンの外では使用できます。つまり、キャレット("^")でエスケープしない限り、OptionalString サブトークン内で "["、"]"、"("、")" を使用することはできません。

トークンにはいくつかの種類があり、次のようなものがあります。

次のような SHGetSpecialFolder 変数。これらは最初のトークンでなければならず、多くても 1 回しか使用できません。

次のようなセッション変数。 次のようなファイル変数およびメタデータ変数。 これらのトークンはユーザーに表示することを意図していないため、ローカライズされません。たとえば $(DateTaken) は、ロケールや言語の設定にかかわらず、すべてのバージョンの Microsoft Windows で同じです。

例として、EventName が "Meghan's Birthday" で、命名パターンが次のようであるとします。


$(MyPicturesFolder)\$(DateAcquired)$([, ]EventName)\$(EventName[ ])$(SequenceNumber).$(OriginalExtension)

結果として、ファイルは次のように命名されます。

C:\Documents and Settings\shauniv\My Documents\My Pictures\2003-11-14, Meghan's Birthday\Meghan's Birthday 001.jpg

C:\Documents and Settings\shauniv\My Documents\My Pictures\2003-11-14, Meghan's Birthday\Meghan's Birthday 002.jpg

C:\Documents and Settings\shauniv\My Documents\My Pictures\2003-11-14, Meghan's Birthday\Meghan's Birthday 003.jpg

C:\Documents and Settings\shauniv\My Documents\My Pictures\2003-11-14, Meghan's Birthday\Meghan's Birthday 004.jpg

vtbl 6 HRESULT SetSequencePaddingWidth(DWORD dwWidth)

SetSequencePaddingWidth メソッドは、ファイル名内の連番フィールドの幅を示す値を設定します。

dwWidthDWORDin連番フィールドの幅を格納したダブルワード値。

戻り値

このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

SetSequencePaddingWidth に渡した値が 0 以外で、かつ SetOutputFileNameTemplate で指定した書式文字列に連番トークンが含まれている場合、このメソッドは連番トークンに割り当てる幅を設定します。たとえば、テンプレート $(GroupTag)$(AcquisitionSequence).$(OriginalExtension) の場合、パディングを 0 に設定するとファイル名は次のようになります。

"Image1.jpg"

パディングを 3 に設定すると、ファイル名は次のようになります。

"Image   1.jpg"
vtbl 7 HRESULT SetSequenceZeroPadding(BOOL fZeroPad)

SetSequenceZeroPadding メソッドは、連番ファイル名のパディングにゼロを使うかスペースを使うかを示す値を設定します。

fZeroPadBOOLinTRUE に設定した場合、連番ファイル名をゼロでパディングすることを示すフラグ。

戻り値

このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

ゼロでパディングされたファイル名は次のようになります。

"IMG0001.JPG"

ゼロパディングを行わない同じファイル名は次のようになります。

"IMG   1.JPG"
vtbl 8 HRESULT SetGroupTag(LPWSTR pszGroupTag)

SetGroupTag メソッドは、取得セッションのグループタグを設定します。

pszGroupTagLPWSTRinグループタグを格納した、null で終わる文字列へのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

グループタグは各ファイルのメタデータにキーワードとして格納されます。また、SetOutputFileNameTemplate に渡す書式文字列に $(GroupTag) トークンが含まれている場合は、ファイル名にも使用されます。

vtbl 9 HRESULT SetAcquisitionTime(FILETIME* pftAcquisitionTime)

SetAcquisitionTime メソッドは、取得時刻を明示的に設定します。

pftAcquisitionTimeFILETIME*in取得時刻を指定します。

戻り値

このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

このメソッドは通常、2 つのセッションで同じ取得時刻を表示させるために使用します。明示的に設定しない場合、取得時刻は既定で現在のマシン時刻になります。

vtbl 10 HRESULT GetFlags(DWORD* pdwPhotoAcquireFlags)

GetFlags メソッドは、写真取得フラグを取得します。

pdwPhotoAcquireFlagsDWORD*out写真取得フラグを格納したダブルワード値へのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
NULL 以外の値が必要でした。
vtbl 11 HRESULT GetOutputFilenameTemplate(LPWSTR* pbstrTemplate)

GetOutputFilenameTemplate メソッドは、ファイル名の書式を指定する書式文字列(テンプレート)を取得します。

pbstrTemplateLPWSTR*out書式文字列を格納する文字列へのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

書式文字列は、パスのリテラルとトークンが混在したものです。書式文字列は次のようになります。


$(MyPicturesFolder)\$(DateAcquired), $(EventName)\$(EventName) $(SequenceNumber).$(OriginalExtension)
vtbl 12 HRESULT GetSequencePaddingWidth(DWORD* pdwWidth)

GetSequencePaddingWidth メソッドは、ファイル名内の連番フィールドの幅を示す値を取得します。

pdwWidthDWORD*out連番フィールドの幅を格納するダブルワード値へのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
NULL 以外の値が必要でした。

解説(Remarks)

SetOutputFileNameTemplate で指定した書式文字列に連番トークンが含まれている場合、このメソッドは連番トークンに割り当てられた幅を取得します。

書式文字列に連番トークンが含まれていない場合、このメソッドが返す値は未定義です。

vtbl 13 HRESULT GetSequenceZeroPadding(BOOL* pfZeroPad)

GetSequenceZeroPadding メソッドは、連番ファイル名のパディングにゼロを使うかスペースを使うかを示す値を取得します。

pfZeroPadBOOL*outTRUE に設定されている場合、連番ファイル名がゼロでパディングされることを示すフラグへのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

ゼロでパディングされたファイル名は次のようになります。

"IMG0001.JPG"

ゼロパディングを行わない同じファイル名は次のようになります。

"IMG   1.JPG"
vtbl 14 HRESULT GetGroupTag(LPWSTR* pbstrGroupTag)

GetGroupTag メソッドは、デバイスからダウンロードされるファイルグループのタグ文字列を取得します。

pbstrGroupTagLPWSTR*outグループタグを格納する文字列へのポインター。

戻り値

このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

グループタグは各ファイルのメタデータにキーワードとして格納されます。また、SetOutputFileNameTemplate に渡す書式文字列に $(GroupTag) トークンが含まれている場合は、ファイル名にも使用されます。

vtbl 15 HRESULT GetAcquisitionTime(FILETIME* pftAcquisitionTime)

GetAcquisitionTime メソッドは、現在のセッションの取得時刻を取得します。

pftAcquisitionTimeFILETIME*out取得時刻を指定します。

戻り値

このメソッドは HRESULT を返します。指定できる値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
NULL 以外の値が必要でした。

解説(Remarks)

明示的に設定しない場合、取得時刻は既定で現在のマシン時刻になります。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IPhotoAcquireSettings "{00F2B868-DD67-487C-9553-049240767E91}"
#usecom global IPhotoAcquireSettings IID_IPhotoAcquireSettings "{}"
#comfunc global IPhotoAcquireSettings_InitializeFromRegistry     3 wstr
#comfunc global IPhotoAcquireSettings_SetFlags                   4 int
#comfunc global IPhotoAcquireSettings_SetOutputFilenameTemplate  5 wstr
#comfunc global IPhotoAcquireSettings_SetSequencePaddingWidth    6 int
#comfunc global IPhotoAcquireSettings_SetSequenceZeroPadding     7 int
#comfunc global IPhotoAcquireSettings_SetGroupTag                8 wstr
#comfunc global IPhotoAcquireSettings_SetAcquisitionTime         9 var
#comfunc global IPhotoAcquireSettings_GetFlags                   10 var
#comfunc global IPhotoAcquireSettings_GetOutputFilenameTemplate  11 var
#comfunc global IPhotoAcquireSettings_GetSequencePaddingWidth    12 var
#comfunc global IPhotoAcquireSettings_GetSequenceZeroPadding     13 var
#comfunc global IPhotoAcquireSettings_GetGroupTag                14 var
#comfunc global IPhotoAcquireSettings_GetAcquisitionTime         15 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。