BOOL openFileBrowse(HWND hwnd, DWORD flags, TCHAR *strResult, TCHAR *strInitialDir) {
	TCHAR szFile[MAX_PATH];
	szFile[0] = '\0';

	OPENFILENAMEEX ofnex  = {0};
	ofnex.lStructSize     = sizeof(ofnex);
	ofnex.hwndOwner       = hwnd;
	ofnex.lpstrFile       = szFile;
	ofnex.nMaxFile        = sizeof(szFile)/sizeof(szFile[0]);
	ofnex.lpstrFilter     = TEXT("All Files (*.*)\0*.*\0");
	ofnex.lpstrTitle      = TEXT("Files");
	ofnex.ExFlags         = flags;
	ofnex.lpstrInitialDir = strInitialDir;

	// Display the Open dialog box. 
	if (GetOpenFileNameEx(&ofnex)==TRUE)
	{
		if (ofnex.lpstrFile[0] != _T('\0'))
		{
			// return ofnex.lpstrFile;
			swprintf(strResult, TEXT("%s"), ofnex.lpstrFile);
			return TRUE;
		}
	}
	return FALSE;
}
Exemplo n.º 2
0
HRESULT Camera::selectPicture(HWND hwndOwner,LPTSTR pszFilename) 
{
	RHO_ASSERT(pszFilename);
#if defined( _WIN32_WCE ) && !defined( OS_PLATFORM_MOTCE )
	OPENFILENAMEEX ofn = {0};
#else
    OPENFILENAME ofn = {0};
#endif
    pszFilename[0] = 0;

	ofn.lStructSize     = sizeof(ofn);
	ofn.lpstrFilter     = NULL;
	ofn.lpstrFile       = pszFilename;
	ofn.nMaxFile        = MAX_PATH;
	ofn.lpstrInitialDir = NULL;
	ofn.lpstrTitle      = _T("Select an image");
#if defined( _WIN32_WCE ) && !defined( OS_PLATFORM_MOTCE )
	ofn.ExFlags         = OFN_EXFLAG_THUMBNAILVIEW|OFN_EXFLAG_NOFILECREATE|OFN_EXFLAG_LOCKDIRECTORY;
    if (GetOpenFileNameEx(&ofn))
#else
    if (GetOpenFileName(&ofn))
#endif

    {
		HRESULT hResult = S_OK;

        /*
		TCHAR rhoroot[MAX_PATH];
		wchar_t* root  = wce_mbtowc(rho_rhodesapp_getblobsdirpath());
		wsprintf(rhoroot,L"%s",root);
		free(root);

		create_folder(rhoroot);*/

        StringW strBlobRoot = convertToStringW( RHODESAPP().getBlobsDirPath() );

        LPCTSTR szExt = wcsrchr(pszFilename, '.');
		TCHAR filename[256];
		generate_filename(filename, szExt);
		
		int len = strBlobRoot.length() + wcslen(L"\\") + wcslen(filename);
		wchar_t* full_name = (wchar_t*) malloc((len+2)*sizeof(wchar_t));
		wsprintf(full_name,L"%s\\%s",strBlobRoot.c_str(),filename);

		if (copy_file(pszFilename,full_name)) 
        {
			wcscpy( pszFilename, filename );
		} else {
			hResult = E_INVALIDARG;
		}

		free(full_name);

		return hResult;
	} else if (GetLastError()==ERROR_SUCCESS) {
		return S_FALSE; //user cancel op
	}
	return E_INVALIDARG;
}
Exemplo n.º 3
0
HRESULT Camera::selectPicture(HWND hwndOwner,LPTSTR pszFilename) {
	RHO_ASSERT(pszFilename);
	OPENFILENAMEEX ofn = {0};

	ofn.lStructSize     = sizeof(ofn);
	ofn.lpstrFilter     = NULL;
	ofn.lpstrFile       = pszFilename;
	ofn.nMaxFile        = MAX_PATH;
	ofn.lpstrInitialDir = NULL;
	ofn.lpstrTitle      = _T("Select an image");
	ofn.ExFlags         = OFN_EXFLAG_THUMBNAILVIEW|OFN_EXFLAG_NOFILECREATE|OFN_EXFLAG_LOCKDIRECTORY;

	if (GetOpenFileNameEx(&ofn)) {
		HRESULT hResult = S_OK;

		TCHAR rhoroot[MAX_PATH];
		wchar_t* root  = wce_mbtowc(RhoGetRootPath());
		wsprintf(rhoroot,L"%s%s",root,L"apps\\public\\db-files");
		free(root);

		create_folder(rhoroot);

		TCHAR filename[256];
		generate_filename(filename);
		
		int len = wcslen(rhoroot) + wcslen(L"\\") + wcslen(filename);
		wchar_t* full_name = (wchar_t*) malloc((len+2)*sizeof(wchar_t));
		wsprintf(full_name,L"%s\\%s",rhoroot,filename);

		if (copy_file(pszFilename,full_name)) {
			StringCchCopy(pszFilename, MAX_PATH, filename);	
		} else {
			hResult = E_INVALIDARG;
		}

		free(full_name);

		return hResult;
	} else if (GetLastError()==ERROR_SUCCESS) {
		return S_FALSE; //user cancel op
	}
	return E_INVALIDARG;
}
Exemplo n.º 4
0
//
//  FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_COMMAND	- process the application menu
//  WM_PAINT	- Paint the main window
//  WM_DESTROY	- post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    INT wmId, wmEvent;
	HRESULT hr;
    PAINTSTRUCT ps;
    HDC hdc;
	wstring CapMode, Capture;
	TCHAR waText[BUF_LENGTH], text2[BUF_LENGTH], title[BUF_LENGTH];
	static SHACTIVATEINFO s_sai;
	DWORD dTickCount;
	
    switch (message) 
    {
		case WM_SIZE:
			 if(wParam == SIZE_MINIMIZED)
			 	 SendMessage (hWnd, WM_CLOSE, 0, 0);	
			 break;
		 
		case WM_COMMAND:
			wmId    = LOWORD(wParam); 
            wmEvent = HIWORD(wParam); 
			
			// Parse the menu selections:
            switch (wmId)
            {
				case IDC_CAPTURE:
					if (wmEvent == BN_CLICKED) 
					{
						//Handle the CAPTURE button click here 
						g_hwndTemp = GetDlgItem(g_hwndMain, IDC_CAPTURE);
						if(!g_bVideoMode)
						{
							EnableWindow(g_hwndTemp, FALSE);
							dTickCount=GetTickCount();
							wsprintf(waText, L"\n **** Time Stamp[%d]: Before Calling the API CaptureStill() function\n", dTickCount);
							OutputDebugString(waText);
							hr = g_Prop.CaptureStill();							
							dTickCount=GetTickCount();
							wsprintf(waText, L"\n **** Time Stamp[%d]: After API CaptureStill() function return\n", dTickCount);
							OutputDebugString(waText);
							if(SUCCEEDED(hr))
							{	
								LoadString(g_hinstCurr, IDS_OK, waText, MAX_LOADSTRING);
								LoadString(g_hinstCurr, STR_STILL, title, MAX_LOADSTRING);
								EnableWindow(g_hwndTemp, TRUE);								
								if(!g_bStressTest)
									MessageBox(hWnd, waText, title, MB_ICONEXCLAMATION|MB_OK); 
							}
						
						}
						else if(!g_bNowRecording)
						{
							g_bNowRecording = TRUE;
							g_hmnuCurr = (HMENU) SendMessage(g_hwndMenuBar, SHCMBM_GETSUBMENU, 0, IDM_SETTINGS);
							EnableMenuItem(g_hmnuCurr, ID_SETTINGS_FILE, MF_BYCOMMAND|MF_GRAYED);
							hr=g_Prop.StartCapture();
							//if(SUCCEEDED(hr))
							{
								LoadString(g_hinstCurr, STR_STOP, waText, MAX_LOADSTRING);
								SendMessage(g_hwndTemp, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)waText);
							}
						}
						else
						{
							g_bNowRecording = FALSE;
							EnableWindow(g_hwndTemp, FALSE);								
							g_Prop.StopCapture();
							EnableMenuItem(g_hmnuCurr, ID_SETTINGS_FILE, MF_BYCOMMAND);
							LoadString(g_hinstCurr, STR_CAPTURE, waText, MAX_LOADSTRING);
							SendMessage(g_hwndTemp, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)waText);
							EnableWindow(g_hwndTemp, TRUE);								
						}	
			
					}
					break;
				
				case IDC_STRESS:
					if(wmEvent == BN_CLICKED)
					{
						g_hwndTemp = GetDlgItem(g_hwndMain,IDC_STRESS);
						LRESULT lResult = SendMessage((HWND) g_hwndTemp, (UINT) BM_GETCHECK, 0, 0);  
						g_hwndTemp = GetDlgItem(g_hwndMain,IDC_CAPTURE);

						if(lResult == BST_CHECKED)
						{
							g_bStressTest = TRUE;
							EnableWindow(g_hwndTemp, FALSE);   //Disable the CAPTURE button
							Set_Timers(hWnd, g_nDuration); 
						}
						else if(lResult == BST_UNCHECKED)
						{
							TCHAR waTemp[BUF_LENGTH];

							g_bStressTest = FALSE;
							KillTimer(hWnd, MY_TIMER);
							KillTimer(hWnd, MY_TIMER2);
							EnableWindow(g_hwndTemp, TRUE);		//Enable the CAPTURE button
							
							g_hwndTemp = GetDlgItem(g_hwndMain, IDC_TIMER);
							wsprintf(waTemp, L"00:00:%.2d", g_nDuration);
							SendMessage(g_hwndTemp, WM_SETTEXT, 0, (LPARAM)waTemp);
							g_nDueTime = g_nDuration;
						}
			
					}
					break;
				
				case ID_MODE_VIDEO:
					g_hmnuCurr = (HMENU) SendMessage(g_hwndMenuBar, SHCMBM_GETSUBMENU, 0, IDM_SETTINGS);
					EnableMenuItem(g_hmnuCurr, ID_SETTINGS_FILE, MF_BYCOMMAND);
					g_hwndTemp = GetDlgItem(g_hwndMain,IDC_MODE);
					LoadString(g_hinstCurr, STR_VMODE, waText, MAX_LOADSTRING);
					SendMessage(g_hwndTemp, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)waText);
					LoadString(g_hinstCurr, STR_MTITLE, text2, MAX_LOADSTRING);
#ifdef DEBUG_MODE
					MessageBox(hWnd, waText, text2, MB_ICONEXCLAMATION|MB_OK); 
#endif
					g_bVideoMode = TRUE;
					RemoveMenu(g_hmnuCurr, 11, MF_BYPOSITION);
					RemoveMenu(g_hmnuCurr, 11, MF_BYPOSITION);
					AppendMenu(g_hmnuCurr, MF_STRING | MF_POPUP, (UINT)g_hmnuVideoSub, L"&Resolution");
					AppendMenu(g_hmnuCurr, MF_STRING | MF_POPUP, (UINT)g_ahmnuVdoColorFmts[0], L"&ColorFmts");	
					//Set_ImgRes(0);
					break; 
				
				case ID_MODE_STILL:
					g_hmnuCurr = (HMENU) SendMessage(g_hwndMenuBar, SHCMBM_GETSUBMENU, 0, IDM_SETTINGS);
					EnableMenuItem(g_hmnuCurr, ID_SETTINGS_FILE, MF_BYCOMMAND|MF_GRAYED);
					g_hwndTemp = GetDlgItem(g_hwndMain,IDC_MODE);
					LoadString(g_hinstCurr, STR_SMODE, waText, MAX_LOADSTRING);
					SendMessage(g_hwndTemp, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)waText);	
					LoadString(g_hinstCurr, STR_MTITLE, text2, MAX_LOADSTRING);
#ifdef DEBUG_MODE
					MessageBox(hWnd, waText, text2, MB_ICONEXCLAMATION|MB_OK); 
#endif
					g_bVideoMode = FALSE;
					RemoveMenu(g_hmnuCurr, 11, MF_BYPOSITION);
					RemoveMenu(g_hmnuCurr, 11, MF_BYPOSITION);
					AppendMenu(g_hmnuCurr, MF_STRING | MF_POPUP, (UINT)g_hmnuStillSub, L"&Resolution");
					AppendMenu(g_hmnuCurr, MF_STRING | MF_POPUP, (UINT)g_ahmnuStillColorFmts[0], L"&ColorFmts");	
					//Set_ImgRes(0);
					break;

				//Setting a Time duration(in Seconds)for Stress testing
				case ID_DURATION_10:
					Set_Duration(10, 0);
					break;
				case ID_DURATION_15:
					Set_Duration(15, 1);
					break;
				case ID_DURATION_20:
					Set_Duration(20, 2);
					break;
				case ID_DURATION_25:
					Set_Duration(25, 3);
					break;
				case ID_DURATION_30:
					Set_Duration(30, 4);
					break;
				case ID_DURATION_35:
					Set_Duration(35, 5);
					break;
				case ID_DURATION_40:
					Set_Duration(40, 6);
					break;
				case ID_DURATION_45:
					Set_Duration(45, 7);
					break;
				case ID_DURATION_60:
					Set_Duration(60, 8);
					break;
				case ID_DURATION_NONE:
					Set_Duration(-1, -1);
					break;
		
				case ID_SETTINGS_FILE:
					TCHAR szFilter[MAX_FILTER];
					TCHAR szTitle[MAX_TITLE];
					TCHAR szExt[MAX_EXT];
					TCHAR szFile[MAX_PATH];
					OPENFILENAME ofn;
					
					wsprintf(szFile,TEXT("\0"));
					memset(&ofn, 0, sizeof (ofn));
					ofn.lStructSize  = sizeof (OPENFILENAME);
					ofn.hwndOwner = hWnd;
					ofn.lpstrFile = szFile;
					ofn.nMaxFile = MAX_PATH;  
					LoadString(g_hinstCurr, STR_FEXT, szExt, MAX_LOADSTRING);
					ofn.lpstrDefExt = szExt;
					LoadString(g_hinstCurr, STR_FFILTER, szFilter, MAX_LOADSTRING);
					wcscat(&szFilter[wcslen(szFilter)+1], szExt);
					wcscat(&szFilter[wcslen(szFilter)+1], L"\0");
					ofn.lpstrFilter =  szFilter; //TEXT("WMV Files (*.wmv)\0*.wmv\0\0");
					LoadString(g_hinstCurr, STR_FOTITLE, szTitle, MAX_LOADSTRING);
					ofn.lpstrTitle = szTitle;
					ofn.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST; 
										
					if(GetSaveFileName (&ofn))  
					{
#ifdef DEBUG_MODE
						    MessageBox (hWnd, ofn.lpstrFile, szTitle, MB_OK);
#endif
							g_Prop.Set_VdoFileName(ofn.lpstrFile);
	 				}
    				else
					{
							LoadString(g_hinstCurr, STR_FALSE, waText, MAX_LOADSTRING);
							MessageBox (hWnd, waText, szTitle, MB_OK);
					}
					
					break;

				case ID_SETTINGS_HORIZONTAL:
					g_hmnuCurr = (HMENU) SendMessage(g_hwndMenuBar, SHCMBM_GETSUBMENU, 0, IDM_SETTINGS);
					hr = g_Prop.Set_Flip(TRUE);
					if(SUCCEEDED(hr))
					{
						CheckMenuItem(g_hmnuCurr, ID_SETTINGS_HORIZONTAL, MF_BYCOMMAND|MF_CHECKED);
						CheckMenuItem(g_hmnuCurr, ID_SETTINGS_VERTICAL, MF_BYCOMMAND|MF_UNCHECKED);
					}
					break;
				case ID_SETTINGS_VERTICAL:
					g_hmnuCurr = (HMENU) SendMessage(g_hwndMenuBar, SHCMBM_GETSUBMENU, 0, IDM_SETTINGS);
					hr = g_Prop.Set_Flip(FALSE);
					if(SUCCEEDED(hr))
					{
						CheckMenuItem(g_hmnuCurr, ID_SETTINGS_VERTICAL, MF_BYCOMMAND|MF_CHECKED);
						CheckMenuItem(g_hmnuCurr, ID_SETTINGS_HORIZONTAL, MF_BYCOMMAND|MF_UNCHECKED);
					}
					break;

				//Camera Property
				case ID_CAMERA_PAN:
					Get_CamProp(PRO_PAN, 0);
					break;
				case ID_CAMERA_TILT:
					Get_CamProp(PRO_TILT, 1);
					break;
				case ID_CAMERA_ROLL:
					Get_CamProp(PRO_ROLL, 2);
					break;
				case ID_CAMERA_ZOOM:
					Get_CamProp(PRO_ZOOM, 3);
					break;
				case ID_CAMERA_EXPOSURE:
					Get_CamProp(PRO_EXPOSURE, 4);
					break;
				case ID_CAMERA_IRIS:
					Get_CamProp(PRO_IRIS, 5);
					break;
				case ID_CAMERA_FOCUS:
					Get_CamProp(PRO_FOCUS, 6);
					break;
				case ID_SETTINGS_FLASH:
					//g_hmnuCurr = (HMENU) SendMessage(g_hwndMenuBar, SHCMBM_GETSUBMENU, 0, IDM_SETTINGS);
					//CheckMenuRadioItem(g_hmnuCurr, 0, 12, 2, MF_BYPOSITION);
					Get_CamProp(PRO_FLASH, 7);
					break;

				//Image Property
				case ID_IMAGE_BRIGHTNESS:
					Get_ImgProp(PRO_BRIGHTNESS, 0);
					break;
				case ID_IMAGE_CONTRAST:
					Get_ImgProp(PRO_CONTRAST, 1);
					break;
				case ID_IMAGE_HUE:
					Get_ImgProp(PRO_HUE, 2);
					break;
				case ID_IMAGE_SATURATION:
					Get_ImgProp(PRO_SATURATION, 3);
					break;
				case ID_IMAGE_SHARPNESS:
					Get_ImgProp(PRO_SHARPNESS, 4);
					break;
				case ID_IMAGE_GAMMA:
					Get_ImgProp(PRO_GAMMA, 5);
					break;
				case ID_IMAGE_COLORENABLE:
					Get_ImgProp(PRO_COLORENABLE, 6);
					break;
				case ID_IMAGE_WHITEBALANCE:	
					Get_ImgProp(PRO_WHITEBALANCE, 7);
					break;
				case ID_IMAGE_BACKLIGHTCOMP:
					Get_ImgProp(PRO_BACKLIGHTCOMP, 8);
					break;
				case ID_IMAGE_GAIN:
					Get_ImgProp(PRO_GAIN, 9);
					break;
		
				//Setting Image Resolution
				case ID_RESOLUTION_0:
					Set_ImgRes(0);
					break;
				case ID_RESOLUTION_1:
					Set_ImgRes(1);
					break;
				case ID_RESOLUTION_2:
					Set_ImgRes(2);
					break;
				case ID_RESOLUTION_3:
					Set_ImgRes(3);
					break;
				case ID_RESOLUTION_4:
					Set_ImgRes(4);
					break;
				case ID_RESOLUTION_5:
					Set_ImgRes(5);
					break;
				case ID_RESOLUTION_6:
					Set_ImgRes(6);
					break;
				case ID_RESOLUTION_7:
					Set_ImgRes(7);
					break;
				case ID_RESOLUTION_8:
					Set_ImgRes(8);
					break;
				case ID_RESOLUTION_9:
					Set_ImgRes(9);
					break;
				
				//Setting Image Color Format
				case ID_RESOLUTION_X_0:
					Set_ImgColorFmt(0);
					break;
				case ID_RESOLUTION_X_1:
					Set_ImgColorFmt(1);
					break;
				case ID_RESOLUTION_X_2:
					Set_ImgColorFmt(2);
					break;
				case ID_RESOLUTION_X_3:
					Set_ImgColorFmt(3);
					break;

				//Symbol Custom property
				case ID_CUSTOM_AIMING:
					g_hwndTemp = GetDlgItem(g_hwndMain,IDC_PROP);
					LoadString(g_hinstCurr, PRO_AIM, waText, MAX_LOADSTRING);
					SendMessage(g_hwndTemp, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)waText);

					g_tCusTbl.p = CUS_PROPERTY_AIMING;
					g_ePType = CUS;
					g_Prop.Get_PropRng(CUS, &g_tCusTbl);
					UpdateUI(g_tCusTbl.plVal, g_tCusTbl.plMin, g_tCusTbl.plMax, g_tCusTbl.plDelta);
					break;
				case ID_CUSTOM_THUMBNAILS:
					
					SYSTEMTIME st;
					GetLocalTime(&st);
					TCHAR day[10];
					TCHAR DName[1024];
					wsprintf(day, L"%.2d%.2d%.2d", st.wMonth, st.wDay, st.wYear%100);
					wsprintf(DName, L"\\My Documents\\My Pictures\\%s", day);
	
					TCHAR szFileName[MAX_PATH];
					OPENFILENAMEEX ofnex;// = {0};
		
					ofnex.lStructSize     = sizeof(ofnex);
					ofnex.hwndOwner       = hWnd;
					ofnex.lpstrFile       = szFileName;
					ofnex.nMaxFile        = sizeof(szFileName) / sizeof(szFileName[0]);
					ofnex.lpstrFilter     = TEXT("JPG Files (*.jpg)\0*.jpg\0");
					ofnex.lpstrTitle      = TEXT("Photos of the day");
					ofnex.ExFlags         = OFN_EXFLAG_THUMBNAILVIEW;
					ofnex.lpstrInitialDir = DName;//L"\\My Documents\\My Pictures\\010107";//NULL
					
					if(GetOpenFileNameEx(&ofnex))
					{
						// The selected file name is in szFileName
					}
					break;

	            default:
                    return DefWindowProc(hWnd, message, wParam, lParam);
            }
            break;
        
		case WM_HSCROLL:
			if(wParam == TB_ENDTRACK) 
			{
				HRESULT hr;
				wstring PropStr;
				WCHAR temp[BUF_LENGTH];

				g_hwndTemp = GetDlgItem(g_hwndMain, IDC_PROP);
				SendMessage(g_hwndTemp, WM_GETTEXT, (WPARAM)STR_LENGHT, (LPARAM)PropStr.c_str());

				g_hwndTemp = GetDlgItem(g_hwndMain, IDC_SLIDER);
				DWORD pos = SendMessage(g_hwndTemp, TBM_GETPOS, 0, 0);
				
				g_hwndTemp = GetDlgItem(g_hwndMain, IDC_POS);
				wsprintf(temp,L"%d", pos);
				SendMessage(g_hwndTemp, WM_SETTEXT, 0, (LPARAM)temp);

#ifdef DEBUG_MODE
				LoadString(g_hinstCurr, STR_DEMARKATE, waText, MAX_LOADSTRING);
				OutputDebugString(waText);
				OutputDebugString(L"|");
				OutputDebugString(PropStr.c_str());
				OutputDebugString(L"|");
				OutputDebugString(waText);
#endif
				if(g_ePType == IMG)
				{
					g_tImgTbl.plVal = (LONG)pos;
					hr = g_Prop.Set_PropVal(IMG, &g_tImgTbl);
				}
				else if(g_ePType == CAM)
				{	
					g_tCamTbl.plVal = (LONG)pos;
					hr = g_Prop.Set_PropVal(CAM, &g_tCamTbl);
				}
				else 
				{
					g_tCusTbl.plVal = (LONG)pos;
					hr = g_Prop.Set_PropVal(CUS, &g_tCusTbl);
				}

				if(SUCCEEDED(hr))
					OutputDebugString(L"\n--------Property Value Set OK----------");
				else
					OutputDebugString(L"\n--------Property Value Set FAIL--------");

			}
			break;

		case WM_CREATE:
			SHMENUBARINFO info;
			memset(&info, 0, sizeof(SHMENUBARINFO));
			info.cbSize = sizeof(info);
			info.hwndParent = hWnd;
			info.dwFlags = SHCMBF_HIDESIPBUTTON|SHCMBF_COLORBK;
			info.nToolBarId = IDR_MENU;
			info.hInstRes = g_hinstCurr;
					
			if (!SHCreateMenuBar(&info)) 
            {
                g_hwndMenuBar = NULL;
            }
            else
            {
                g_hwndMenuBar = info.hwndMB;
		    }
			// Initialize the shell activate info structure
            memset(&s_sai, 0, sizeof (s_sai));
            s_sai.cbSize = sizeof (s_sai);
			break;
        
		case WM_TIMER:
			if(wParam==MY_TIMER2)
			{
				TCHAR waTemp[BUF_LENGTH];

				if(!g_bVideoMode&&g_bStressTest)				
				{
					g_hwndTemp = GetDlgItem(g_hwndMain, IDC_TIMER);
					wsprintf(waTemp,L"00:00:%.2d",(--g_nDueTime));
					SendMessage(g_hwndTemp, WM_SETTEXT, 0, (LPARAM)waTemp);
				}
			}
			else if(wParam==MY_TIMER)
			{
				if(!g_bVideoMode&&g_bStressTest)
				{
					g_nDueTime = g_nDuration;
					g_Prop.CaptureStill();
				}
			}
			break;

		case WM_PAINT:
            hdc = BeginPaint(hWnd, &ps);
#ifdef DEBUG_MODE
			LoadString(g_hinstCurr, STR_WM_PAINT, waText, MAX_LOADSTRING);
			OutputDebugString(waText);
#endif
            // TODO: Add any drawing code here...
            EndPaint(hWnd, &ps);
            break;
        
		case WM_DESTROY:
			CommandBar_Destroy(g_hwndMenuBar);
            PostQuitMessage(0);
			break;

        case WM_ACTIVATE:
            // Notify shell of our activate message
            SHHandleWMActivate(hWnd, wParam, lParam, &s_sai, FALSE);
            break;

		case WM_SETTINGCHANGE:
            SHHandleWMSettingChange(hWnd, wParam, lParam, &s_sai);
            break;

        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
    }
return 0;
}
Exemplo n.º 5
0
void VcardForm::onHotSpot( LPCSTR url, LPCSTR param ) {
    std::string nurl=std::string(url);
    if (nurl=="load") {
        wchar_t filename[MAX_PATH];
        *filename=0;
        OPENFILENAME ofn;
        memset(&ofn, 0, sizeof(OPENFILENAME));
        ofn.lStructSize=sizeof(OPENFILENAME);
        ofn.hwndOwner=getHWnd();
        ofn.hInstance=g_hInst;
        ofn.lpstrFilter=FILEIMGMASK;
        ofn.nFilterIndex=0;
        ofn.lpstrFile=filename;
        ofn.nMaxFile=MAX_PATH;
        ofn.lpstrTitle=L"Select image file";
        ofn.Flags=OFN_FILEMUSTEXIST | OFN_EXPLORER;
        BOOL result=GetOpenFileNameEx(&ofn);
        if (!result) return;

        loadPhoto(filename);

        vcardArrivedNotify(vcard);
        return;
    }
    if (nurl=="save") {
        savePhoto(NULL);
        return;
    }
    if (nurl=="clear") {
        //todo: clear photo
        JabberDataBlockRef vcardTemp=vcard->findChildNamespace("vCard","vcard-temp");
        if (!vcardTemp) return;
        vcardTemp->removeChild("PHOTO");
        vcardArrivedNotify(vcard);
        return;
    }
    if (nurl=="reload") {
        //todo: re-request vcard
        return;
    }
    if (nurl=="publish") {
        //todo: publish vcard

        
        JabberDataBlockRef vcardTemp=vcard->findChildNamespace("vCard","vcard-temp");
        if (!vcardTemp) {
            vcardTemp=JabberDataBlockRef(new JabberDataBlock("vCard"));
            vcardTemp->setAttribute("xmlns","vcard-temp");
        }

        JabberDataBlock viq("iq");
        viq.setAttribute("to",vcard->getAttribute("from"));
        viq.setAttribute("type","set");
        viq.setAttribute("id","my-vcard-publish");
        viq.addChild(vcardTemp);

        StringMapRef m=HtmlView::splitHREFtext(param);
        for (StringMap::iterator i=m->begin(); i!=m->end(); i++) {
            std::string key=i->first;
            std::string value=i->second;
            std::string key2;
            int k2=key.find('#');
            if (k2>0) {
                key2=key.substr(k2+1, key.length()-k2-1);
                key=key.substr(0, k2);
            }

            JabberDataBlockRef child=vcardTemp->getChildByName(key.c_str());
            if (!child) child=vcardTemp->addChild(key.c_str(), NULL);
            if (k2>0) {
                JabberDataBlockRef child2=child->getChildByName(key2.c_str());
                if (!child2) child2=child->addChild(key2.c_str(), NULL);
                child=child2;
            }
            child->setText(value);
        }

        /*if (img) if (img->getHBmp()) {
            std::wstring imgFile=appRootPath+L"$tmpimg.jpg";
            loadPhoto(imgFile.c_str());
        }*/

        //StringRef result=viq->toXML();

        //todo: verify result
        rc.lock()->jabberStream->sendStanza(viq);
        
        vcardArrivedNotify(vcard);
        return;
    }

}