今回はATLを使ってウィンドウ上にFlashを埋め込んでみます
#include <tchar.h> #include <windows.h> // ウィンドウプロシージャ LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { if(msg == WM_DESTROY) PostQuitMessage(0); return (DefWindowProc(hWnd, msg, wParam, lParam)); } int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd) { const TCHAR* WC_BASIC = _T("Basic"); // ウィンドウクラス名 /********************************************/ /* ウィンドウクラスの定義と登録 */ /********************************************/ // シンプルウィンドウクラス設定 WNDCLASSEX wcex ={sizeof(WNDCLASSEX), CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS, WndProc, 0,0,hInstance, (HICON)LoadImage(NULL,MAKEINTRESOURCE(IDI_APPLICATION),IMAGE_ICON,0,0,LR_DEFAULTSIZE | LR_SHARED), (HCURSOR)LoadImage(NULL,MAKEINTRESOURCE(IDC_ARROW),IMAGE_CURSOR,0,0,LR_DEFAULTSIZE | LR_SHARED), (HBRUSH)GetStockObject(WHITE_BRUSH), NULL, WC_BASIC , NULL}; // シンプルウィンドウクラス登録 RegisterClassEx(&wcex); /********************************************/ /* ウィンドウの作成 */ /********************************************/ HWND hWnd = CreateWindowEx( 0, //拡張ウィンドウスタイル WC_BASIC, //ウィンドウクラス名 _T("タイトル"), //タイトルバーにこの名前が表示されます WS_OVERLAPPEDWINDOW | WS_VISIBLE, //ウィンドウスタイル CW_USEDEFAULT, //X座標 CW_USEDEFAULT, //Y座標 640, //幅 480, //高さ NULL, //親ウィンドウのハンドル、親を作るときはNULL NULL, //メニューハンドルorリソースID hInstance, //インスタンスハンドル NULL); RECT rect; GetClientRect(hWnd,&rect); void* init = GetProcAddress(LoadLibrary(_T("atl")),"AtlAxWinInit"); _asm call init; CreateWindow(_T("AtlAxWin"), _T("C:\\k3.swf"), WS_CHILD | WS_VISIBLE,0,0,rect.right - rect.top,rect.bottom - rect.top,hWnd,NULL,hInstance,NULL); MSG msg={0}; while (GetMessage(&msg,0,0,0)) DispatchMessage(&msg); };