Microsoft DirectX 8.0

CBaseControlWindow クラス

CBaseControlWindow クラスの階層

CBaseControlWindow クラスは IVideoWindow インターフェイスを実装し、これに関連付けられたフィルタへの外部のアクセスを制御する。クリティカル セクション同期オブジェクトへのポインタを渡すことによって、CBaseControlWindow オブジェクトをフィルタと同期しなければならない。クリティカル セクション同期オブジェクトの詳細については、Platform SDK を参照すること。CBaseControlWindow クラスは、このクリティカル セクションを処理せずにプロパティの設定を返す数多くのメソッドを提供する。たとえば、CBaseControlWindow::get_AutoShow を呼び出して m_bAutoShow データ メンバの値を取得すると、クリティカル セクションはロックされる。ただし、フィルタが既に内部クリティカル セクションをロックしている場合があり、この場合はフィルタのロック階層に違反する。この代わりに、CBaseControlWindow::IsAutoShowEnabled メンバ関数を呼び出すと、クリティカル セクションに影響を及ぼさずに必要な値が返される。

CBaseControlWindow が実装するすべての IVideoWindow メソッドでは、フィルタがアップストリーム フィルタに正しく接続されている必要がある。このため、クラス オブジェクトは同期ピンを必要とする。同期ピンは、CBaseControlWindow::SetControlWindowPin メソッドを呼び出すことによって設定される。IVideoWindow メソッドを呼び出すと、CBaseControlWindow オブジェクトはこのピンが接続されていることをチェックする。

プロテクト データ メンバ

m_bAutoShow 状態が変化したときの結果。
m_bCursorHidden カーソルが表示または非表示のいずれであるかの判別。
m_BorderColour 現在のウィンドウの境界のカラー。
m_hwndDrain 受信したメッセージの送信先のウィンドウ ハンドル。
m_hwndOwner 所有するウィンドウ。
m_pFilter 所有するメディア フィルタへのポインタ。
m_pInterfaceLock 外部的に定義されるクリティカル セクション。
m_pPin 接続のメディア タイプの制御。

メンバ関数

CBaseControlWindow CBaseControlWindow オブジェクトを作成する。
DoGetWindowStyle 標準ウィンドウ スタイルまたは拡張ウィンドウ スタイルのいずれかを取得する。
DoSetWindowStyle 標準ウィンドウ スタイルまたは拡張ウィンドウ スタイルを設定する。
GetBorderColour 現在の境界のカラーを取得する。これはヘルパー メンバ関数である。
GetOwnerWindow 所有するウィンドウを取得する。これはヘルパー メンバ関数である。
IsAutoShowEnabled レンダリング フィルタがポーズまたは実行されたときに、ビデオ ウィンドウが自動的に表示されるかどうかについての情報を取得する。
IsCursorHidden クリティカル セクションをロックせずに、m_bCursorHidden データ メンバの現在の状態を取得する。これはヘルパー メンバ関数である。
PossiblyEatMessage 親ウィンドウにメッセージを配信する。
SetControlWindowPin オブジェクトが適用されるピンをオブジェクトに通知する。

実装される IVideoWindow メソッド

get_AutoShow 現在の AutoShow フラグの設定を取得する。
get_BackgroundPalette バックグラウンド フラグで実現されたパレットを取得する。
get_BorderColor 現在の境界のカラーを取得する。
get_Caption 現在のウィンドウ キャプションを取得する。
get_FullScreenMode 現在のフルスクリーン モードを取得する。
get_Height 現在のウィンドウの高さを取得する。
get_Left 現在の左のウィンドウ座標を取得する。
GetMaxIdealImageSize 理想的なイメージの最大サイズを取得する。
get_MessageDrain 現在のメッセージ ドレーンを取得する。
GetMinIdealImageSize 理想的なイメージの最小サイズを取得する。
get_Owner Microsoft® Win32® 親ウィンドウ ハンドルを取得する。
GetRestorePosition 最大化または最小化したときに、ウィンドウが復元される位置を取得する。
get_Top ウィンドウ上部の y 座標を取得する。
get_Visible ウィンドウの現在の表示の設定を取得する。
get_Width ウィンドウの幅を取得する。
GetWindowPosition 現在のウィンドウの座標を取得する。
get_WindowState 現在のウィンドウの状態を取得する。
get_WindowStyle 標準ウィンドウ スタイルを取得する。
get_WindowStyleEx 拡張ウィンドウ スタイルを取得する。
HideCursor カーソルの表示/非表示を切り替える。
IsCursorHidden m_bCursorHidden データ メンバの現在の状態を取得する。
NotifyOwnerMessage 所有するウィンドウに送信されるメッセージを渡す。
put_AutoShow AutoShow プロパティを設定する。
put_BackgroundPalette バックグラウンドでパレットを実現するためのフラグを設定する。
put_BorderColor 現在の境界のカラーを設定する。
put_Caption 現在のウィンドウ キャプションを設定する。
put_FullScreenMode フルスクリーン モードを設定する。
put_Height 現在のウィンドウの高さを設定する。
put_Left ウィンドウの左の座標を設定する。
put_MessageDrain メッセージ ドレーン ウィンドウを設定する。
put_Owner Microsoft Win32 親ウィンドウ ハンドルを設定する。
put_Top ウィンドウ上部の位置を設定する。
put_Visible ウィンドウの表示/非表示を切り替える。
put_Width ウィンドウの幅を設定する。
put_WindowState ウィンドウの状態を設定する。
put_WindowStyle 標準ウィンドウ スタイルを設定する。
put_WindowStyleEx 拡張ウィンドウ スタイルを設定する。
SetWindowForeground フォアグラウンドのウィンドウを設定する。
SetWindowPosition ウィンドウの位置を設定する。

CBaseControlWindow::CBaseControlWindow

CBaseControlWindow クラス

CBaseControlWindow オブジェクトを作成する。

構文

CBaseControlWindow(
CBaseMediaFilter *pFilter,
CCritSec *pInterfaceLock,
TCHAR *pName,
LPUNKNOWN pUnk,
HRESULT *phr
);

パラメータ

pFilter
所有するメディア フィルタ オブジェクトへのポインタ。
pInterfaceLock
ロックのために使用するクリティカル セクションへのポインタ。
pName
オブジェクト記述へのポインタ。
pUnk
オブジェクトが集成の一部ではない場合は、制御する IUnknown インターフェイスへのポインタ。それ以外の場合は、NULL でなければならない。
phr
コンストラクタ メソッドの成功または失敗を示す HRESULT 値を受け取る変数へのポインタ。

戻り値

戻り値なし。

CBaseControlWindow::DoGetWindowStyle

CBaseControlWindow クラス

現在の標準ウィンドウ スタイルまたは拡張ウィンドウ スタイルを取得する。

構文

HRESULT DoGetWindowStyle(
long *pStyle,
long WindowLong
);

パラメータ

pStyle
スタイル情報を受け取る変数へのポインタ。
WindowLong
取得するスタイルを指定する値。次のいずれかでなければならない。
GWL_STYLEウィンドウ スタイルを取得する。
GWL_EXSTYLE拡張ウィンドウ スタイルを取得する。

戻り値

HRESULT 値を返す。

注意

このメンバ関数は、Win32 GetWindowLong 関数を呼び出してウィンドウ スタイルを取得する。このメンバ関数は、CBaseControlWindow::get_WindowStyle および CBaseControlWindow::get_WindowStyleEx メンバ関数によって呼び出される。

CBaseControlWindow::DoSetWindowStyle

CBaseControlWindow クラス

標準ウィンドウ スタイルまたは拡張ウィンドウ スタイルを変更する。

構文

HRESULT DoSetWindowStyle(
long Style,
long WindowLong
);

パラメータ

Style
適切なウィンドウ スタイル。
WindowLong
設定するスタイルを指定する値。次のいずれかでなければならない。
GWL_STYLEウィンドウ スタイルを取得する。
GWL_EXSTYLE拡張ウィンドウ スタイルを取得する。

戻り値

HRESULT 値を返す。

注意

このメンバ関数は、Win32 SetWindowLong 関数を呼び出してウィンドウ スタイルを設定し、次に現在の位置にウィンドウを再表示する。このメンバ関数は、CBaseControlWindow::put_WindowStyle および CBaseControlWindow::put_WindowStyleEx メンバ関数によって呼び出される。

CBaseControlWindow::get_AutoShow

CBaseControlWindow クラス

現在の AutoShow 状態フラグを取得する。

構文

HRESULT get_AutoShow(
long *AutoShow
);

パラメータ

AutoShow
オートメーション ブール型フラグへのポインタ (0 はオフ、-1 はオン)。

戻り値

HRESULT 値を返す。

注意

このメンバ関数は、IVideoWindow::get_AutoShow メソッドを実装する。このプロパティは、アプリケーションのウィンドウ表示アクセスを簡素化する。このプロパティが -1 (オン) に設定されている場合、通常フィルタの接続後は非表示になっているウィンドウは、フィルタがポーズまたは実行されると自動的に表示される。ただし、フィルタが停止した場合、ウィンドウを非表示にするべきではない。このパラメータが 0 (オフ) に設定されている場合、アプリケーションが適切なパラメータを指定して CBaseControlWindow::put_Visible または CBaseControlWindow::put_WindowState を呼び出したときにのみウィンドウが表示される。

このメンバ関数は、IVideoWindow インターフェイスを使用して外部オブジェクトによって呼び出されることを想定しているので、関連付けられたフィルタと同期するためにクリティカル セクションをロックする。外部オブジェクトから呼び出さない場合に、このプロパティを取得するには、CBaseControlWindow::IsAutoShowEnabled メンバ関数を呼び出す。

CBaseControlWindow::get_BackgroundPalette

CBaseControlWindow クラス

バックグラウンド フラグで実現されたパレットを取得する。

構文

HRESULT get_BackgroundPalette(
long *pBackgroundPalette
);

パラメータ

pBackgroundPalette
オートメーション ブール型フラグへのポインタ (0 はオフ、-1 はオン)。

戻り値

HRESULT 値を返す。

注意

このメンバ関数は、IVideoWindow::get_BackgroundPalette メソッドを実装する。ビデオを別のアプリケーションまたはドキュメントで再生する場合、そのアプリケーションで独自のパレットを使いたいことがある。このフラグを -1 に設定することによって、アプリケーションはビデオの再生に現在のフォアグラウンド パレットを使用することを要求できる。このフラグが 0 に設定されている場合、ウィンドウは独自の優先パレットをインストールして実現する。ウィンドウで別のパレットを使用するように指定すると、パフォーマンスが大幅に低下することに注意が必要である。

CBaseControlWindow::get_BorderColor

CBaseControlWindow クラス

現在の境界のカラーを取得する。

構文

HRESULT get_BorderColor(
long *Color
);

パラメータ

Color
現在の境界のカラーへのポインタ。

戻り値

HRESULT 値を返す。

注意

アプリケーションはビデオを表示する転送先矩形を設定できる。この矩形は、ウィンドウのクライアント領域に比例する。転送先矩形を設定した場合 (デフォルトでは常にウィンドウ全体が描画される)、ビデオの周囲に境界が表示される。このプロパティは、境界で使用されるカラーに影響する。このパラメータは LONG 型として指定されているが、実際には COLORREF 値である。

このメンバ関数は、IVideoWindow インターフェイスを使用して外部オブジェクトによって呼び出されることを想定しているので、関連付けられたフィルタと同期するためにクリティカル セクションをロックする。外部オブジェクトから呼び出さない場合に、このプロパティを取得するには、CBaseControlWindow::GetBorderColour メンバ関数を呼び出す。

CBaseControlWindow::GetBorderColour

CBaseControlWindow クラス

現在のウィンドウの境界カラー m_BorderColour を取得する。

構文

COLORREF GetBorderColour(void);

戻り値

境界のカラーを返す。

注意

アプリケーションはビデオを表示する転送先矩形を設定できる。この矩形は、ウィンドウのクライアント領域に比例する。転送先矩形を設定した場合 (デフォルトでは常にウィンドウ全体が描画される)、ビデオを囲む領域、つまり境界が表示される。境界のカラーは、CBaseControlWindow::put_BorderColor メンバ関数を使用して設定できる。このプロパティは、境界のカラーに影響する。IVideoWindow::get_BorderColor メソッドを使用して外部から呼び出す場合以外は、CBaseControlWindow::get_BorderColor の代わりにこのメンバ関数を使用する。

CBaseControlWindow::get_Caption

CBaseControlWindow クラス

現在のウィンドウ キャプションを取得する。

構文

HRESULT get_Caption(
BSTR *pstrCaption
);

パラメータ

pstrCaption
現在のウィンドウ キャプションへのポインタ。

戻り値

HRESULT 値を返す。

注意

Windows ベースのデスクトップ上の最上位ウィンドウには、タイトル (キャプション) が関連付けられる。このプロパティは、IVideoWindow インターフェイスを使用して問い合わせおよび設定することができる。設定されたキャプションは、ウィンドウに WS_CAPTION スタイルが適用されている場合にのみ表示される。このスタイルが適用されていない場合、ユーザーに対しては表示されないが、キャプションは設定 (および取得) できる。

CBaseControlWindow::get_FullScreenMode

CBaseControlWindow クラス

現在のフルスクリーン モードを取得する。

構文

HRESULT get_FullScreenMode(
long *FullScreenMode
);

パラメータ

FullScreenMode
現在のフルスクリーン モードへのポインタ。

戻り値

HRESULT 値を返す。

注意

このメンバ関数は、デフォルトで E_NOTIMPL を返す。これは、IVideoWindow PID に、このレンダラがフルスクリーン レンダラを実装していないことを通知する。

CBaseControlWindow::get_Height

CBaseControlWindow クラス

現在のウィンドウの高さを取得する。

構文

HRESULT get_Height(
long *pHeight
);

パラメータ

pHeight
ピクセル単位の現在のウィンドウの高さへのポインタ。

戻り値

HRESULT 値を返す。

注意

ウィンドウはデスクトップ上に位置座標を持つ。これはピクセル単位の 4 つの座標 (左、上、右、下) によって表される。OLE によって自動化されるインターフェイスでは、通常、左、上、幅、および高さでこの位置座標を表す。これは Microsoft® DirectShow® で採用されている規則である。座標はすべてピクセル単位で表され、座標が変更されるとウィンドウが即座に更新される。

左または上の座標を設定すると、ウィンドウはそれぞれ左または上に移動する。これらの座標はウィンドウの幅や高さには影響を与えない。同様に、幅および高さの設定は左および上の座標には影響を与えない。

CBaseControlWindow::get_Left

CBaseControlWindow クラス

現在の左のウィンドウ座標を取得する。

構文

HRESULT get_Left(
long *pLeft
);

パラメータ

pLeft
ピクセル単位の左の座標へのポインタ。

戻り値

HRESULT 値を返す。

注意

ウィンドウはデスクトップ上に位置座標を持つ。この位置座標はピクセル単位の 4 つの座標 (左、上、右、下) によって表される。OLE によって自動化されるインターフェイスでは、通常、左、上、幅、および高さでこの位置座標を表す。これは DirectShow で採用されている規則である。座標はすべてピクセル単位で表され、座標が変更されるとウィンドウが即座に更新される。

左または上の座標を設定すると、ウィンドウはそれぞれ左または上に移動する。これらの座標はウィンドウの幅や高さには影響を与えない。同様に、幅および高さの設定は左および上の座標には影響を与えない。

CBaseControlWindow::GetMaxIdealImageSize

CBaseControlWindow クラス

理想的なイメージの最大サイズを取得する。

構文

HRESULT GetMaxIdealImageSize(
long *pWidth,
long *pHeight
);

パラメータ

pWidth
ピクセル単位の理想的な最大の幅へのポインタ。
pHeight
ピクセル単位の理想的な最大の高さへのポインタ。

戻り値

HRESULT 値を返す。

注意

さまざまなレンダラには、表示できるイメージのサイズについてパフォーマンス上の制限がある。レンダラは指定された最大サイズよりも大きいイメージを表示するように要求された場合でも正しく機能するが、IVideoWindow インターフェイスを使用して、理想的な最小サイズおよび最大サイズを指定できる。このインターフェイスはフィルタ グラフがポーズまたは実行されている場合にのみ呼び出される。これは、このとき初めてリソースが割り当てられ、レンダラがその制限を認識できるからである。制限が存在しない場合は、レンダラは pWidth および pHeight パラメータにネイティブ ビデオのディメンジョンを格納し、S_FALSE を返す。制限が存在する場合は、制限された幅および高さが入力され、このメンバ関数は S_OK を返す。

このディメンジョンは転送先ビデオのサイズに適用され、全体的なウィンドウ サイズには適用されない。したがって、設定するウィンドウのサイズを計算するときは、現在のウィンドウ スタイル (WS_CAPTION や WS_BORDER など) を考慮する必要がある。

CBaseControlWindow::get_MessageDrain

CBaseControlWindow クラス

現在のメッセージ ドレーンを取得する。

構文

HRESULT get_MessageDrain(
OAHWND *Drain
);

パラメータ

Drain
ウィンドウ メッセージを受け取る現在のウィンドウへのポインタ。

戻り値

HRESULT 値を返す。

注意

ビデオ レンダリング フィルタに送信されたメッセージを、別のウィンドウに送信できる。CBaseControlWindow::get_MessageDrain メンバ関数を使用してこのメッセージを受信するように登録されているウィンドウが、現在のメッセージ ドレーンである。

CBaseControlWindow::GetMinIdealImageSize

CBaseControlWindow クラス

理想的なイメージの最小サイズを取得する。

構文

HRESULT GetMinIdealImageSize(
long *pWidth,
long *pHeight
);

パラメータ

pWidth
ピクセル単位の理想的な最小の幅へのポインタ。
pHeight
ピクセル単位の理想的な最小の高さへのポインタ。

戻り値

HRESULT 値を返す。

注意

さまざまなレンダラには、表示できるイメージのサイズについてパフォーマンス上の制限がある。レンダラは指定された最大サイズよりも大きいイメージを表示するように要求された場合でも正しく機能するが、IVideoWindow インターフェイスを使用して、理想的な最小サイズおよび最大サイズを指定できる。このインターフェイスはフィルタ グラフがポーズまたは実行されている場合にのみ呼び出される。これは、このとき初めてリソースが割り当てられ、レンダラがその制限を認識できるからである。 制限が存在しない場合は、レンダラは pWidth および pHeight パラメータにネイティブ ビデオのディメンジョンを格納し、S_FALSE を返す。制限が存在する場合は、制限された幅および高さが入力され、このメンバ関数は S_OK を返す。

このディメンジョンは転送先ビデオのサイズに適用され、全体的なウィンドウ サイズには適用されない。したがって、設定するウィンドウのサイズを計算するときは、現在のウィンドウ スタイル (WS_CAPTION や WS_BORDER など) を考慮する必要がある。

CBaseControlWindow::get_Owner

CBaseControlWindow クラス

現在のウィンドウの所有者を取得する。

構文

HRESULT get_Owner(
OAHWND *Owner
);

パラメータ

Owner
ウィンドウの所有者へのポインタ。

戻り値

HRESULT 値を返す。

注意

ビデオ ウィンドウはドキュメント環境内で再生できる。これを行うには、ウィンドウは別のウィンドウの子でなければならない (ウィンドウを適切にクリップおよび移動するため)。このプロパティによって、ウィンドウの所有者を設定および取得できる。ウィンドウが別のウィンドウによって所有されている場合、そのウィンドウは Microsoft Win32 SetParent 関数を呼び出す。この関数を呼び出すアプリケーションは、ウィンドウ スタイルを変更し、WS_CHILD ビットをオンに設定する。

ウィンドウが別のウィンドウに所有されている場合、特定のメッセージ (具体的にはマウスおよびキーボード メッセージ) を自動的に転送する。これによって、アプリケーションは簡単にホットスポット編集およびその他の相互作用を実行できる。

このメンバ関数は、IVideoWindow インターフェイスを使用して外部オブジェクトによって呼び出されることを想定しているので、関連付けられたフィルタと同期するためにクリティカル セクションをロックする。外部オブジェクトから呼び出さない場合に、このプロパティを取得するには、CBaseControlWindow::GetOwnerWindow メンバ関数を呼び出す。

CBaseControlWindow::GetOwnerWindow

CBaseControlWindow クラス

所有するウィンドウ ハンドル m_hwndOwner を取得する。

構文

HWND GetOwnerWindow(void);

戻り値

所有者ウィンドウを返す内部的なメソッドを返す。

注意

このメンバ関数は、インターフェイス メソッドを呼び出さずに、所有するウィンドウを取得する。IVideoWindow::get_Owner メソッドを使用して外部から呼び出す場合以外は、CBaseControlWindow::get_Owner の代わりにこのメンバ関数を使用する。

CBaseControlWindow::GetRestorePosition

CBaseControlWindow クラス

最大化または最小化しないときに、ウィンドウが復元される位置を取得する。

構文

HRESULT GetRestorePosition(
long *pLeft,
long *pTop,
long *pWidth,
long *pHeight
);

パラメータ

pLeft
最も左の座標の値へのポインタ。
pTop
ウィンドウ上部の値へのポインタ。
pWidth
ウィンドウの幅の値へのポインタ。
pHeight
ウィンドウの高さの値へのポインタ。

戻り値

HRESULT 値を返す。

注意

ウィンドウが最大化または最小化されていない場合、これは CBaseControlWindow::GetWindowPosition 関数によって返される値と同じである。

CBaseControlWindow::get_Top

CBaseControlWindow クラス

上のウィンドウ座標を取得する。

構文

HRESULT get_Top(
long *pTop
);

パラメータ

pTop
ピクセル単位の上の座標へのポインタ。

戻り値

HRESULT 値を返す。

注意

ウィンドウはデスクトップ上に位置座標を持つ。これはピクセル単位の 4 つの座標 (左、上、右、下) によって表される。OLE によって自動化されるインターフェイスでは、通常、左、上、幅、および高さでこの位置座標を表す。これは DirectShow で採用されている規則である。座標はすべてピクセル単位で表され、座標が変更されるとウィンドウが即座に更新される。

左または上の座標を設定すると、ウィンドウはそれぞれ左または上に移動する。これらの座標はウィンドウの幅や高さには影響を与えない。同様に、幅および高さの設定は左および上の座標には影響を与えない。

CBaseControlWindow::get_Visible

CBaseControlWindow クラス

現在のウィンドウの表示の設定を取得する。

構文

HRESULT get_Visible(
long *pVisible
);

パラメータ

pVisible
オートメーション ブール型フラグへのポインタ (0 はオフ、-1 はオン)。

戻り値

HRESULT 値を返す。

注意

このメンバ関数は、ウィンドウが WS_VISIBLE スタイルの場合は -1 を返す。それ以外の場合は 0 を返す。

CBaseControlWindow::get_Width

CBaseControlWindow クラス

現在のウィンドウの幅を取得する。

構文

HRESULT get_Width(
long *pWidth
);

パラメータ

pWidth
ピクセル単位のウィンドウの幅へのポインタ。

戻り値

HRESULT 値を返す。

注意

ウィンドウはデスクトップ上に位置座標を持つ。これはピクセル単位の 4 つの座標 (左、上、右、下) によって表される。OLE によって自動化されるインターフェイスでは、通常、左、上、幅、および高さでこの位置座標を表す。これは DirectShow で採用されている規則である。座標はすべてピクセル単位で表され、座標が変更されるとウィンドウが即座に更新される。

左または上の座標を設定すると、ウィンドウはそれぞれ左または上に移動する。これらの座標はウィンドウの幅や高さには影響を与えない。同様に、幅および高さの設定は左および上の座標には影響を与えない。

CBaseControlWindow::GetWindowPosition

CBaseControlWindow クラス

現在のウィンドウの座標を取得する。

構文

HRESULT GetWindowPosition(
long *pLeft,
long *pTop,
long *pWidth,
long *pHeight
);

パラメータ

pLeft
スクリーン座標での左の座標へのポインタ。
pTop
スクリーン座標での上の座標へのポインタ。
pWidth
スクリーン座標でのウィンドウの幅へのポインタ。
pHeight
スクリーン座標でのウィンドウの高さへのポインタ。

戻り値

HRESULT 値を返す。

CBaseControlWindow::get_WindowState

CBaseControlWindow クラス

現在のウィンドウの状態を取得する。

構文

HRESULT get_WindowState(
long *pWindowState
);

パラメータ

pWindowState
ウィンドウの状態へのポインタ。

戻り値

HRESULT 値を返す。

注意

このメンバ関数は、Microsoft Win32 ShowWindow 関数のパラメータのサブセットを返す。具体的には、現在のウィンドウの表示の設定に基づいて SW_SHOW および SW_HIDE を返す。また、ウィンドウがアイコン化されているか、最大化されているかに応じて、SW_MINIMIZE および SW_MAXIMIZE を返す。

CBaseControlWindow::get_WindowStyle

CBaseControlWindow クラス

標準ウィンドウ スタイルを取得する。

構文

HRESULT get_WindowStyle(
long *pWindowStyle
);

パラメータ

pWindowStyle
ウィンドウ スタイルへのポインタ。

戻り値

HRESULT 値を返す。

注意

このメンバ関数は、WS_CHILD および WS_VISIBLE などの標準ウィンドウ スタイルを返す。このメンバ関数は、CBaseControlWindow::DoGetWindowStyle メンバ関数を呼び出す。

CBaseControlWindow::get_WindowStyleEx

CBaseControlWindow クラス

拡張ウィンドウ スタイルを取得する。

構文

HRESULT get_WindowStyleEx(
long *pWindowStyleEx
);

パラメータ

pWindowStyleEx
拡張ウィンドウ スタイルへのポインタ。

戻り値

HRESULT 値を返す。

注意

このメンバ関数は、拡張ウィンドウ スタイルを取得する。このメンバ関数は、CBaseControlWindow::DoGetWindowStyle メンバ関数を呼び出す。

CBaseControlWindow::HideCursor

CBaseControlWindow クラス

カーソルの表示/非表示を切り替える。

構文

HRESULT HideCursor(
long HideCursor
);

パラメータ

HideCursor
カーソルを表示するかどうかを指定する値。カーソルを非表示にする場合は OATRUE に、カーソルを表示する場合は OAFALSE に設定する。

戻り値

HRESULT 値を返す。

CBaseControlWindow::IsCursorHidden

CBaseControlWindow クラス

m_bCursorHidden データ メンバの現在の状態を取得する。

構文

HRESULT IsCursorHidden(
long *CursorHidden
);

BOOL IsCursorHidden(void);

パラメータ

CursorHidden
m_bCursorHidden の値へのポインタ。

戻り値

パラメータを指定せずに呼び出した場合、カーソルが非表示の場合は OATRUE、カーソルが表示されている場合は OAFALSE を返す。

パラメータを指定して呼び出した場合は、HRESULT 値を返す。

注意

内部オブジェクトは、クリティカル セクションをロックしないように、CursorHidden パラメータを指定せずにこのメンバ関数を呼び出さなければならない。外部オブジェクトは、IVideoWindow::IsCursorHidden メソッドを使ってこのメンバ関数にアクセスする。

CBaseControlWindow::IsAutoShowEnabled

CBaseControlWindow クラス

レンダリング フィルタがポーズまたは実行されたときに、ビデオ ウィンドウが自動的に表示されるかどうかについての情報を取得する。

構文

BOOL IsAutoShowEnabled(void);

戻り値

m_bAutoShow メンバが -1 に設定されている場合は TRUE、0 に設定されている場合は FALSE を返す。

注意

非表示のビデオ ウィンドウについて m_bAutoShow メンバが -1 に設定されている場合、フィルタがポーズまたは実行されるとウィンドウが表示される。このメンバが 0 に設定されている場合、適切なパラメータを指定して CBaseControlWindow::put_Visible または CBaseControlWindow::put_WindowState を呼び出したときにのみウィンドウが表示される。

このメンバ関数は、m_bAutoShow メンバの設定を取得する。その結果は、IVideoWindow::get_AutoShow メソッドを使用した場合と同じである。

CBaseControlWindow::NotifyOwnerMessage

CBaseControlWindow クラス

特定のメッセージをビデオ ウィンドウに渡す。

構文

HRESULT NotifyOwnerMessage(
long hwnd,
long uMsg,
long wParam,
long lParam
);

パラメータ

hwnd
ビデオ ウィンドウのハンドル。
uMsg
メッセージの詳細。
wParam
最初のメッセージ パラメータ。
lParam
2 番目のメッセージ パラメータ。

戻り値

NO_ERROR を返す。

注意

ビデオ ウィンドウが別のウィンドウの子である場合、ビデオ ウィンドウは特定の最上位ウィンドウのメッセージを受信しない。このようなメッセージはレンダラの動作に影響する場合があるので、レンダラにとって有用なことがある。NotifyOwnerMessage は、以下のメッセージをビデオ ウィンドウに渡す。

IVideoWindow PID に要求して、ウィンドウを別のウィンドウの子にすることができる。この場合、PID は所有するウィンドウに送信された特定のメッセージを検索する。次に、PID はこれらのメッセージを所有されるウィンドウに転送する。このメッセージのデフォルトの処理では、Win32 SendMessage 関数を呼び出して、所有されるウィンドウのプロシージャに同期的にメッセージが送信される。

CBaseControlWindow::PossiblyEatMessage

CBaseControlWindow クラス

キーボードおよびマウス メッセージを指定されたウィンドウに転送する。

構文

BOOL WINAPI PossiblyEatMessage(
HWND hwndDrain,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
    )

パラメータ

hwndDrain
メッセージが転送されるウィンドウのハンドル。
uMsg
転送されるメッセージ。
wParam
最初のメッセージ パラメータ。
lParam
2 番目のメッセージ パラメータ。

戻り値

メッセージが送信された場合は TRUE、送信されなかった場合は FALSE を返す。

注意

ウィンドウが所有されている場合、このウィンドウは特定のクラスのメッセージ (キーボードおよびマウス メッセージ) を所有するウィンドウに渡す。この場合、Win32 PostMessage 関数を呼び出して、CBaseControlWindow::put_MessageDrain で設定された hwndDrain で指定されているウィンドウにメッセージを送信する。特定のメッセージを送信できない場合、このメッセージは FALSE を返す。

未変換のまま渡されて、TRUE を返すメッセージの一覧を以下に示す。
WM_CHARWM_DEADCHAR
WM_KEYDOWNWM_KEYUP
WM_LBUTTONDBLCLK WM_LBUTTONDOWN
WM_LBUTTONUP WM_LBUTTONDBLCLK
WM_MBUTTONDOWN WM_LBUTTONUP
WM_MOUSEACTIVATE WM_MOUSEMOVE
WM_NCHITTEST WM_NCLBUTTONDBLCLK
WM_NCLBUTTONDOWN WM_NCLBUTTONUP
WM_NCMBUTTONDBLCLK WM_NCMBUTTONDOWN
WM_NCMBUTTONUP WM_NCMOUSEMOVE
WM_NCRBUTTONDBLCLK WM_NCRBUTTONDOWN
WM_NCRBUTTONUP WM_RBUTTONDBLCLK
WM_RBUTTONDOWN WM_RBUTTONUP
WM_SYSCHAR WM_SYSDEADCHAR
WM_SYSKEYDOWN WM_SYSKEYUP

CBaseControlWindow::put_AutoShow

CBaseControlWindow クラス

AutoShow 状態フラグを設定する。

構文

HRESULT put_AutoShow(
long AutoShow
);

パラメータ

AutoShow
オートメーション ブール型フラグ (0 はオフ、-1 はオン)。

戻り値

HRESULT 値を返す。

注意

このプロパティは、アプリケーションのウィンドウ表示アクセスを簡素化する。このプロパティが -1 (オン) に設定されている場合、通常フィルタの接続後は非表示になっているウィンドウは、フィルタがポーズまたは実行されると自動的に表示される。ただし、フィルタが停止した場合、ウィンドウを非表示にするべきではない。このパラメータが 0 (オフ) に設定されている場合、アプリケーションが適切なパラメータを指定して CBaseControlWindow::put_Visible または CBaseControlWindow::put_WindowState を呼び出したときにのみウィンドウが表示される。

CBaseControlWindow::put_BackgroundPalette

CBaseControlWindow クラス

バックグラウンドでパレットを実現するためのフラグを設定する。

構文

HRESULT put_BackgroundPalette(
long BackgroundPalette
);

パラメータ

BackgroundPalette
オートメーション ブール型フラグ (0 はオフ、-1 はオン)。

戻り値

HRESULT 値を返す。

注意

ビデオを別のアプリケーションまたはドキュメントで再生するために、そのアプリケーションで独自のパレットを使いたいことがある。このフラグを -1 に設定することによって、アプリケーションはビデオのバックグラウンド パレットとして、独自のパレットではなく現在のフォアグラウンド パレットを使用することを要求できる。このフラグが 0 に設定されている場合、ウィンドウは独自の優先パレットをインストールして実現する。ウィンドウで別のパレットを使用するように指定すると、パフォーマンスが大幅に低下する。

CBaseControlWindow::put_BorderColor

CBaseControlWindow クラス

境界のカラーを変更する。

構文

HRESULT put_BorderColor(
long Color
);

パラメータ

Color
新しい境界のカラー。

戻り値

HRESULT 値を返す。

注意

アプリケーションはビデオを表示する転送先矩形を設定できる。この矩形は、ウィンドウのクライアント領域に比例する。転送先矩形を設定した場合 (デフォルトでは常にウィンドウ全体が描画される)、ビデオの周囲に境界が表示される。このプロパティは、境界で使用されるカラーに影響する。このパラメータは LONG 型として指定されているが、実際には COLORREF 値である。

CBaseControlWindow::put_Caption

CBaseControlWindow クラス

ウィンドウ タイトルまたはキャプションを設定する。

構文

HRESULT put_Caption(
BSTR strCaption
);

パラメータ

strCaption
新しいウィンドウ キャプション。

戻り値

HRESULT 値を返す。

注意

Windows ベースのデスクトップ上の最上位ウィンドウには、タイトル (キャプション) が関連付けられる。このプロパティは、IVideoWindow インターフェイスを使用して問い合わせおよび設定することができる。設定されたキャプションは、ウィンドウに WS_CAPTION スタイルが適用されている場合にのみ表示される。このスタイルが適用されていない場合、ユーザーに対しては表示されないが、キャプションは設定 (および取得) できる。

CBaseControlWindow::put_FullScreenMode

CBaseControlWindow クラス

レンダラのフルスクリーン モードを設定する。

構文

HRESULT put_FullScreenMode(
long FullScreenMode
);

パラメータ

FullScreenMode
適用するフルスクリーン モード。

戻り値

HRESULT 値を返す。現在の実装は E_NOTIMPL を返す。

注意

フルスクリーン モードを実装するビデオ レンダラは、このメンバ関数をオーバーライドして、サポートするモードを実装する。

CBaseControlWindow::put_Height

CBaseControlWindow クラス

ウィンドウの高さを設定する。

構文

HRESULT put_Height(
long Height
);

パラメータ

Height
ピクセル単位の新しいウィンドウの高さ。

戻り値

HRESULT 値を返す。

注意

ウィンドウはデスクトップ上に位置座標を持つ。これはピクセル単位の 4 つの座標 (左、上、右、下) によって表される。OLE によって自動化されるインターフェイスでは、通常、左、上、幅、および高さでこの位置座標を表す。これは DirectShow で採用されている規則である。座標はすべてピクセル単位で表され、座標が変更されるとウィンドウが即座に更新される。

左または上の座標を設定すると、ウィンドウはそれぞれ左または上に移動する。これらの座標はウィンドウの幅や高さには影響を与えない。同様に、幅および高さの設定は左および上の座標には影響を与えない。

CBaseControlWindow::put_Left

CBaseControlWindow クラス

ウィンドウの左の座標を設定する。

構文

HRESULT put_Left(
long Left
);

パラメータ

Left
ピクセル単位の新しい左の座標。

戻り値

HRESULT 値を返す。

注意

ウィンドウはデスクトップ上に位置座標を持つ。これはピクセル単位の 4 つの座標 (左、上、右、下) によって表される。OLE によって自動化されるインターフェイスでは、通常、左、上、幅、および高さでこの位置座標を表す。これは DirectShow で採用されている規則である。座標はすべてピクセル単位で表され、座標が変更されるとウィンドウが即座に更新される。

左または上の座標を設定すると、ウィンドウはそれぞれ左または上に移動する。これらの座標はウィンドウの幅や高さには影響を与えない。同様に、幅および高さの設定は左および上の座標には影響を与えない。

CBaseControlWindow::put_MessageDrain

CBaseControlWindow クラス

ビデオ レンダラに送信されたウィンドウ メッセージを受信するウィンドウを設定する。

構文

HRESULT put_MessageDrain(
OAHWND Drain
);

パラメータ

Drain
メッセージの送信先のウィンドウ。

戻り値

HRESULT 値を返す。

注意

ビデオ レンダリング フィルタに送信されたメッセージを、別のウィンドウに送信できる。このメンバ関数は、このようなメッセージを受信するウィンドウを登録する。CBaseControlWindow::put_Owner メンバ関数とは異なり、このメンバ関数はビデオ ウィンドウを別のウィンドウの子にしない。このメンバ関数は、子ウィンドウにすることができないフルスクリーン ビデオ レンダラで特に有用である。

CBaseControlWindow::put_Owner

CBaseControlWindow クラス

ビデオ ウィンドウの親ウィンドウを設定する。この親ウィンドウは特定のメッセージをビデオ ウィンドウに転送する。

構文

HRESULT put_Owner(
OAHWND Owner
);

パラメータ

Owner
親ウィンドウのハンドル。

戻り値

NOERROR を返す。

注意

内部的には、このメソッドは Microsoft Win32 SetParent 関数を呼び出して新しい所有者を設定し、ウィンドウのスタイルを WS_CHILD に設定する。この親ウィンドウは特定のメッセージ (具体的にはマウスおよびキーボード メッセージ) をビデオ ウィンドウに転送する。

ビデオ ウィンドウの所有者を設定した後、フィルタ グラフを解放する前に、所有者を NULL に設定し、所有者のウィンドウ スタイルを WS_OVERLAPPED および WS_CLIPCHILDREN に設定しなければならない。所有者を NULL に設定すると、このメソッドは親ウィンドウの WS_CHILD ビットをオフにする。所有者を NULL に設定しない場合、親ウィンドウはメッセージをビデオ ウィンドウに渡し続けるので、アプリケーションを終了したときにエラーが発生する可能性がある。

CBaseControlWindow::put_Top

CBaseControlWindow クラス

上のウィンドウ座標を設定する。

構文

HRESULT put_Top(
long Top
);

パラメータ

Top
ピクセル単位の新しい上の座標。

戻り値

HRESULT 値を返す。

注意

ウィンドウはデスクトップ上に位置座標を持つ。これはピクセル単位の 4 つの座標 (左、上、右、下) によって表される。OLE によって自動化されるインターフェイスでは、通常、左、上、幅、および高さでこの位置座標を表す。これは DirectShow で採用されている規則である。座標はすべてピクセル単位で表され、座標が変更されるとウィンドウが即座に更新される。

左または上の座標を設定すると、ウィンドウはそれぞれ左または上に移動する。これらの座標はウィンドウの幅や高さには影響を与えない。同様に、幅および高さの設定は左および上の座標には影響を与えない。

CBaseControlWindow::put_Visible

CBaseControlWindow クラス

ウィンドウを表示または非表示にする。

構文

HRESULT put_Visible(
long Visible
);

パラメータ

Visible
オートメーション ブール型フラグ (0 の場合、ウィンドウは非表示。-1 の場合、ウィンドウは表示される)。

戻り値

HRESULT 値を返す。

CBaseControlWindow::put_Width

CBaseControlWindow クラス

ウィンドウの幅を設定する。

構文

HRESULT put_Width(
long Width
);

パラメータ

Width
ピクセル単位の新しいウィンドウの幅。

戻り値

HRESULT 値を返す。

注意

ウィンドウはデスクトップ上に位置座標を持つ。これはピクセル単位の 4 つの座標 (左、上、右、下) によって表される。OLE によって自動化されるインターフェイスでは、通常、左、上、幅、および高さでこの位置座標を表す。これは DirectShow で採用されている規則である。座標はすべてピクセル単位で表され、座標が変更されるとウィンドウが即座に更新される。

左または上の座標を設定すると、ウィンドウはそれぞれ左または上に移動する。これらの座標はウィンドウの幅や高さには影響を与えない。同様に、幅および高さの設定は左および上の座標には影響を与えない。

CBaseControlWindow::put_WindowState

CBaseControlWindow クラス

ウィンドウの状態を設定する。

構文

HRESULT put_WindowState(
long WindowState
);

パラメータ

WindowState
新しいウィンドウの状態。

戻り値

HRESULT 値を返す。

注意

このメンバ関数は、Microsoft Win32 ShowWindow 関数と同じパラメータ (WS_SHOWNORMAL、WS_SHOWMINNOACTIVATE、および WS_SHOWMAXIMIZED など) を取る。

CBaseControlWindow::put_WindowStyle

CBaseControlWindow クラス

標準的な Windows ベースのスタイルを設定する。

構文

HRESULT put_WindowStyle(
long WindowStyle
);

パラメータ

WindowStyle
新しいウィンドウのスタイル。

戻り値

HRESULT 値を返す。

注意

ウィンドウ スタイルを変更する場合は注意が必要である。ほとんどの場合、アプリケーションは現在のスタイルを取得して、ビットを追加または不適切なビットを削除しなければならない。この手順によって、Windows® によって使用されるさまざまな内部ウィンドウ スタイルをそのままにしておくことができる。

CBaseControlWindow::put_WindowStyleEx

CBaseControlWindow クラス

コントロール ウィンドウのスタイルを設定する。

構文

HRESULT put_WindowStyleEx(
long WindowStyleEx
);

パラメータ

WindowStyleEx
[in] コントロール ウィンドウのスタイルを設定する値。

戻り値

NOERROR を返す。

注意

このメソッドは、EX (拡張) ウィンドウ スタイルを使用する。拡張ウィンドウ スタイルの詳細については、Microsoft Win32 の関数「CreateWindowEx」を参照すること。ウィンドウ スタイルを変更するには、現在のウィンドウ スタイルを取得し、次に必要なビット フィールドを追加または削除する。

以下のウィンドウ スタイルは有効ではないので、使用してはならない。

ここに示されている一部の例外を除いて、使用可能なフラグは Win32 CreateWindow 関数で使用できるフラグと同じである。

CBaseControlWindow::SetControlWindowPin

CBaseControlWindow クラス

同期しなければならないピンを設定する。

構文

void SetControlWindowPin(
CBasePin *pPin
);

パラメータ

pPin
インターフェイスが同期するピンへのポインタ。

戻り値

戻り値なし。

注意

このメンバ関数は、m_pPin 変数を pPin パラメータに等しくなるように設定する。コンストラクタで説明したように、このインターフェイスは、フィルタが正常に接続された場合にのみ呼び出すことができる。オブジェクトは、このメンバ関数によって同期されるピンに渡される。ほとんどの場合、インターフェイス メソッドが呼び出されたときにピンが接続されているかどうかを判断し、失敗した場合は VFW_E_NOT_CONNECTED を返す。

CBaseControlWindow::SetWindowForeground

CBaseControlWindow クラス

ビデオ ウィンドウをフォアグラウンドに移動し、オプションでフォーカスを与える。

構文

HRESULT SetWindowForeground(
long Focus
);

パラメータ

Focus
ビデオ ウィンドウがフォーカスを受け取るかどうかを指定する値。値が -1 の場合、ウィンドウにフォーカスが与えられる。0 の場合、フォーカスは与えられない。

戻り値

次のいずれかの値を返す。
NOERRORメソッドが成功した。
E_INVALIDARGFocus が -1 または 0 ではない。
VFW_E_NOT_CONNECTED 現在のフィルタが、完全なフィルタ グラフに接続されていない。

CBaseControlWindow::SetWindowPosition

CBaseControlWindow クラス

デスクトップ上のウィンドウの位置を設定する。

構文

HRESULT SetWindowPosition(
long Left,
long Top,
long Width,
long Height
);

パラメータ

Left
新しい左の座標。
Top
新しい上の座標。
Width
ウィンドウの幅。
Height
ウィンドウの高さ。

戻り値

HRESULT 値を返す。