フルスクリーン表示

ここでは、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)を行うとフルスクリーンモードは解除されます。