フルスクリーン表示
ここでは、IVideoWindowインターフェースを利用してフルスクリーン表示を行う方法を説明します。 (注意)ここの例では、サンプルを簡潔にするためにエラー処理を書いていません。
サンプルコード
次は、フルスクリーン表示をしてみます。 とりあえず、下記サンプルを書いて試してみましょう。
#include <stdio.h>
#include <dshow.h>
#define FILENAME L"c:\\DXSDK\\Samples\\Media\\butterfly.mpg"
int
main()
{
IGraphBuilder *pGraphBuilder;
IMediaControl *pMediaControl;
IMediaEvent *pMediaEvent;
long eventCode;
IVideoWindow *pVideoWindow;
CoInitialize(NULL);
CoCreateInstance(CLSID_FilterGraph,
NULL,
CLSCTX_INPROC,
IID_IGraphBuilder,
(LPVOID *)&pGraphBuilder);
pGraphBuilder->QueryInterface(IID_IMediaControl,
(LPVOID *)&pMediaControl);
pGraphBuilder->QueryInterface(IID_IMediaEvent,
(LPVOID *)&pMediaEvent);
pMediaControl->RenderFile(FILENAME);
pGraphBuilder->QueryInterface(IID_IVideoWindow,
(LPVOID *)&pVideoWindow);
// Full Screen 開始
pVideoWindow->put_FullScreenMode(OATRUE);
pMediaControl->Run();
pMediaEvent->WaitForCompletion(-1, &eventCode);
// Full Screen 終了
pVideoWindow->put_FullScreenMode(OAFALSE);
pVideoWindow->Release();
pMediaEvent->Release();
pMediaControl->Release();
pGraphBuilder->Release();
CoUninitialize();
return 0;
}
IVideoWindowのput_FullScreenMode(OATRUE)を利用すると映像再生ウィンドウはフルスクリーンになります。 put_FullScreenMode(OAFALSE)を行うとフルスクリーンモードは解除されます。