ACMFORMATCHOOSE 構造体 (msacm.h)
ACMFORMATCHOOSE 構造体には、ACM がシステム定義の波形オーディオ形式の選択ダイアログ ボックスを初期化するために使用する情報が含まれています。 ユーザーがダイアログ ボックスを閉じると、システムはこの構造でユーザーの選択に関する情報を返します。
構文
typedef struct tACMFORMATCHOOSE {
DWORD cbStruct;
DWORD fdwStyle;
HWND hwndOwner;
LPWAVEFORMATEX pwfx;
DWORD cbwfx;
LPCSTR pszTitle;
char szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
char szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
LPSTR pszName;
DWORD cchName;
DWORD fdwEnum;
LPWAVEFORMATEX pwfxEnum;
HINSTANCE hInstance;
LPCSTR pszTemplateName;
LPARAM lCustData;
ACMFORMATCHOOSEHOOKPROC pfnHook;
} ACMFORMATCHOOSE, *PACMFORMATCHOOSE, *LPACMFORMATCHOOSE;
メンバー
cbStruct
ACMFORMATCHOOSE 構造体のサイズ (バイト単位)。 このメンバーは、アプリケーションが acmFormatChoose 関数を呼び出す前に初期化する必要があります。 このメンバーで指定するサイズは、基本 ACMFORMATCHOOSE 構造体を格納するのに十分な大きさである必要があります。
fdwStyle
acmFormatChoose 関数のオプションのスタイル フラグ。 このメンバーは、アプリケーションが acmFormatChoose 関数を呼び出す前に、次のフラグの有効な組み合わせに初期化する必要があります。
Name | 説明 |
---|---|
|
状況依存のヘルプは、ダイアログ ボックスで使用できます。 この機能を使用するには、アプリケーションで RegisterWindowMessage 関数を使用して、ACMHELPMSGCONTEXTMENU および ACMHELPMSGCONTEXTHELP 定数を登録する必要があります。 ユーザーがヘルプを呼び出すと、登録済みのメッセージが所有ウィンドウに投稿されます。 メッセージには、元のWM_CONTEXTMENUまたはWM_CONTEXTHELP メッセージの wParam パラメーターと lParam パラメーターが含まれます。 |
|
pfnHook メンバーが指すフック関数を有効にします。 アプリケーションでは、 MM_ACM_FORMATCHOOSE メッセージへの応答など、さまざまなカスタマイズにフック関数を使用できます。 |
|
ACM に hInstance および pszTemplateName で識別されるダイアログ ボックス テンプレートを作成させます。 |
|
hInstance メンバーは、事前に読み込まれたダイアログ ボックス テンプレートを含むデータ ブロックを識別します。 このフラグを指定すると、ACM は pszTemplateName メンバーを無視します。 |
|
pwfx が指すバッファーには、ダイアログ ボックスが最初の選択として使用する有効な WAVEFORMATEX 構造体が含まれています。 |
|
ダイアログ ボックスにヘルプ ボタンが表示されます。 カスタム ヘルプ ファイルを使用するには、アプリケーションで ACMHELPMSGSTRING 定数を RegisterWindowMessage 関数に登録する必要があります。 ユーザーがヘルプ ボタンを押すと、登録されたメッセージが所有者に投稿されます。 |
hwndOwner
ダイアログ ボックスを所有するウィンドウを識別するハンドル。 このメンバーには、任意の有効なウィンドウ ハンドルを指定できます。ダイアログ ボックスに所有者がない場合は NULL を 指定できます。 このメンバーは、 acmFormatChoose 関数を呼び出す前に初期化する必要があります。
pwfx
WAVEFORMATEX 構造体へのポインター。 fdwStyle メンバーでACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT フラグが指定されている場合、この構造体は有効な形式に初期化する必要があります。 acmFormatChoose 関数が返されると、このバッファーには選択した形式が含まれます。 ユーザーがダイアログ ボックスをキャンセルした場合、このバッファーは変更されません。
cbwfx
pwfx が指すバッファーのサイズ (バイト単位)。 バッファーが小さすぎて書式情報を含めなければ、 acmFormatChoose 関数はACMERR_NOTPOSSIBLEを返します。 また、ACM は必要なサイズをこのメンバーにコピーします。 アプリケーションでは 、acmMetrics 関数と acmFormatTagDetails 関数を使用して、このバッファーに必要な最大サイズを決定できます。
pszTitle
ダイアログ ボックスのタイトル バーに配置する文字列へのポインター。 このメンバーが NULL の場合、ACM は既定のタイトル ("サウンド選択" ) を使用します。
szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]
acmFormatTagDetails 関数によって返される ACMFORMATTAGDETAILS 構造体の場合、書式選択の書式タグを記述する null で終わる文字列を含むバッファー。 ユーザーがダイアログ ボックスをキャンセルすると、このメンバーには null で終わる文字列が含まれます。
szFormat[ACMFORMATDETAILS_FORMAT_CHARS]
acmFormatDetails 関数によって返される ACMFORMATDETAILS 構造体の場合、書式選択の書式属性を記述する null で終わる文字列を含むバッファー。 ユーザーがダイアログ ボックスをキャンセルすると、このメンバーには null で終わる文字列が含まれます。
pszName
ユーザー定義の書式名の文字列へのポインター。 これが null で終わる以外の文字列の場合、ACM は、以前に保存したユーザー定義の形式名と名前の照合を試みます。 一致するものが見つかった場合、ダイアログ ボックスはその形式に初期化されます。 一致が見つからない場合、またはこのメンバーが null で終わる文字列の場合、このメンバーは入力時に無視されます。 acmFormatChoose 関数が返されると、このバッファーには、ユーザー定義の形式を記述する null で終わる文字列が含まれます。 書式名が無題の場合 (つまり、ユーザーが書式の名前を指定していない場合)、このメンバーは戻り時に null で終わる文字列になります。 ユーザーがダイアログ ボックスをキャンセルした場合、このバッファーは変更されません。
cchName
pszName メンバーによって識別されるバッファーのサイズ (文字単位)。 このバッファーの長さが 128 文字以上である必要があります。 pszName メンバーが NULL の場合、このメンバーは無視されます。
fdwEnum
ダイアログ ボックスに表示される書式の種類を制限するための省略可能なフラグ。 これらのフラグは、acmFormatEnum 関数の fdwEnum フラグと同じです。 pwfxEnum が NULL の場合、このメンバーは 0 である必要があります。 次の値が定義されています。
Name | 説明 |
---|---|
|
pwfxEnum メンバーが指す WAVEFORMATEX 構造体が有効です。 列挙子は、指定された pwfxEnum 形式から変換できる変換先の形式のみを列挙します。 |
|
列挙子は、インストールされている 1 つ以上の波形オーディオ デバイスによってハードウェアでサポートされている形式のみを列挙する必要があります。 このフラグは、インストールされている波形オーディオ デバイスにネイティブな形式のみを選択する方法をアプリケーションに提供します。 |
|
列挙子は、入力 (記録) でサポートされている形式のみを列挙する必要があります。 |
|
pwfxEnum メンバーが指す WAVEFORMATEX 構造体の nChannels メンバーが有効です。 列挙子は、この属性に準拠する形式のみを列挙します。 |
|
pwfxEnum メンバーが指す WAVEFORMATEX 構造体の nSamplesPerSec メンバーが有効です。 列挙子は、この属性に準拠する形式のみを列挙します。 |
|
列挙子は、出力 (再生) でサポートされている形式のみを列挙する必要があります。 |
|
pwfxEnum メンバーが指す WAVEFORMATEX 構造体が有効です。 列挙子は、指定された pwfxEnum 形式のすべての推奨される変換先の形式を列挙します。 |
|
pwfxEnum メンバーが指す WAVEFORMATEX 構造体の wBitsPerSample メンバーが有効です。 列挙子は、この属性に準拠する形式のみを列挙します。 |
|
pwfxEnum メンバーが指す WAVEFORMATEX 構造体の wFormatTag メンバーが有効です。 列挙子は、この属性に準拠する形式のみを列挙します。 |
pwfxEnum
ダイアログ ボックスに表示される形式を制限するために使用される WAVEFORMATEX 構造体へのポインター。 fdwEnum メンバーは、列挙の制限に使用する必要がある pwfxEnum によって指される構造体のメンバーを定義します。 特別な制限が必要ない場合は、このメンバーを NULL にすることができます。 pwfxEnum メンバーに関連付けられているその他の要件については、acmFormatEnum 関数の説明を参照してください。
hInstance
pszTemplateName メンバーによって指定されたダイアログ ボックス テンプレートを含むデータ ブロックを処理します。 このメンバーは、 fdwStyle メンバーがACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEまたはACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE フラグを指定する場合にのみ使用されます。それ以外の場合、このメンバーは入力時に NULL である必要があります。
pszTemplateName
ACM 内のダイアログ ボックス テンプレートの代わりに使用するダイアログ ボックス テンプレートのリソース ファイルの名前を指定する null で終わる文字列へのポインター。 アプリケーションでは、番号付きダイアログ ボックス リソースに MAKEINTRESOURCE マクロを使用できます。 このメンバーは、 fdwStyle メンバーがACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE フラグを指定する場合にのみ使用されます。それ以外の場合、このメンバーは入力時に NULL である必要があります。
lCustData
ACM が pfnHook メンバーによって識別されるフック関数に渡すアプリケーション定義データ。 システムは、WM_INITDIALOG メッセージの lParam パラメーターにデータを渡します。
pfnHook
ダイアログ ボックス用のメッセージを処理するコールバック関数へのポインター。 アプリケーションでは、フックを有効にするには、 fdwStyle メンバーに ACMFORMATCHOOSE_STYLEF_ENABLEHOOK フラグを指定する必要があります。それ以外の場合、このメンバーは NULL である必要があります。 フック関数は、標準のダイアログ ボックス プロシージャにメッセージを渡すには FALSE を 返し、メッセージを破棄するには TRUE を返す必要があります。 コールバック関数の種類は acmFormatChooseHookProc です。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
Header | msacm.h |