void App::Start (const int argc, const char *argv[]) { CoInitialize(NULL); strcpy (g_cbTRiAS, g_cbCopyrightName); TriasRegUnInit(ParseCmdString(argc, argv), true); CoUninitialize(); }
// In this function, we save the instance handle, then create and display the main program window. BOOL SingleFace::InitInstance(HINSTANCE hInstance, PWSTR lpCmdLine, int nCmdShow) { m_hInst = hInstance; // Store instance handle in our global variable ParseCmdString(lpCmdLine); WCHAR szTitle[MaxLoadStringChars]; // The title bar text LoadString(m_hInst, IDS_APP_TITLE, szTitle, ARRAYSIZE(szTitle)); static const PCWSTR RES_MAP[] = { L"80x60", L"320x240", L"640x480", L"1280x960" }; static const PCWSTR IMG_MAP[] = { L"PLAYERID", L"RGB", L"YUV", L"YUV_RAW", L"DEPTH" }; // Add mode params in title WCHAR szTitleComplete[MAX_PATH]; swprintf_s(szTitleComplete, L"%s -- Depth:%s:%s Color:%s:%s NearMode:%s, SeatedSkeleton:%s", szTitle, IMG_MAP[m_depthType], (m_depthRes < 0)? L"ERROR": RES_MAP[m_depthRes], IMG_MAP[m_colorType], (m_colorRes < 0)? L"ERROR": RES_MAP[m_colorRes], m_bNearMode? L"ON": L"OFF", m_bSeatedSkeletonMode?L"ON": L"OFF"); WCHAR szWindowClass[MaxLoadStringChars]; // the main window class name LoadString(m_hInst, IDC_SINGLEFACE, szWindowClass, ARRAYSIZE(szWindowClass)); RegisterClass(szWindowClass); m_hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_SINGLEFACE)); m_pImageBuffer = FTCreateImage(); m_pVideoBuffer = FTCreateImage(); m_hWnd = CreateWindow(szWindowClass, szTitleComplete, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, WINDOWWIDTH, WINDOWHEIGHT, NULL, NULL, m_hInst, this); if (!m_hWnd) { return FALSE; } ShowWindow(m_hWnd, nCmdShow); UpdateWindow(m_hWnd); #ifdef USEOPENGL m_GLContext.init(m_hWnd); InitGL(); #endif return SUCCEEDED(m_FTHelper.Init(m_hWnd, FTHelperCallingBack, this, m_depthType, m_depthRes, m_bNearMode, TRUE, // if near mode doesn't work, fall back to default mode m_colorType, m_colorRes, m_bSeatedSkeletonMode)); }
// In this function, we save the instance handle, then create and display the main program window. BOOL MultiFace::InitInstance(HINSTANCE hInstance, PWSTR lpCmdLine, int nCmdShow) { ParseCmdString(lpCmdLine); m_eggavatar = new EggAvatar[m_nbUsers]; m_pImageBuffer = new IFTImage*[m_nbUsers]; m_hInst = hInstance; // Store instance handle in our global variable WCHAR szTitle[MaxLoadStringChars]; // The title bar text LoadString(m_hInst, IDS_APP_TITLE, szTitle, ARRAYSIZE(szTitle)); static const PCWSTR RES_MAP[] = { L"80x60", L"320x240", L"640x480", L"1280x960" }; static const PCWSTR IMG_MAP[] = { L"PLAYERID", L"RGB", L"YUV", L"YUV_RAW", L"DEPTH" }; // Add mode params in title WCHAR szTitleComplete[MAX_PATH]; swprintf_s(szTitleComplete, L"%s -- Depth:%s:%s Color:%s:%s NearMode:%s SeatedSkeleton:%s", szTitle, IMG_MAP[m_depthType], (m_depthRes < 0)? L"ERROR": RES_MAP[m_depthRes], IMG_MAP[m_colorType], (m_colorRes < 0)? L"ERROR": RES_MAP[m_colorRes], m_bNearMode? L"ON": L"OFF", m_bSeatedSkeletonMode? L"ON": L"OFF"); WCHAR szWindowClass[MaxLoadStringChars]; // the main window class name LoadString(m_hInst, IDC_MULTIFACE, szWindowClass, ARRAYSIZE(szWindowClass)); RegisterClass(szWindowClass); m_hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MULTIFACE)); for (UINT i=0; i<m_nbUsers; i++) { m_pImageBuffer[i] = FTCreateImage(); } m_pVideoBuffer = FTCreateImage(); m_hWnd = CreateWindow(szWindowClass, szTitleComplete, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, m_hInst, this); if (!m_hWnd) { return FALSE; } ShowWindow(m_hWnd, nCmdShow); UpdateWindow(m_hWnd); // Start the face tracking. return SUCCEEDED(m_FTHelper.Init(m_hWnd, m_nbUsers, FTHelperCallingBack, this, FTHelperUserSelection, this, m_depthType, m_depthRes, m_bNearMode, m_colorType, m_colorRes, m_bSeatedSkeletonMode)); }