Example #1
0
INT_PTR TestPlugin(WPARAM wParam, LPARAM lParam)
{
	char temp[MAX_PATH];
	const int MAX = 20;
	int i;
	HANDLE handles[MAX][2];
/*	FOLDERSDATA caca;
	caca.cbSize = sizeof(caca);
	caca.szFormat = FOLDER_LOGS;*/
	char *section;
	for (i = 0; i < MAX; i++)
		{
			switch (i % 4)
				{
					case 0:
						section = "Section 1";
						break;
					case 1:
						section = "Section 2";
						break;
					case 2:
						section = "Yet another section";
						break;
					case 3:
						section = "Section no 4";
						break;
					default:
						section = "Uhh ohh";
						break;
				}
			//strcpy(caca.szSection, section);
			_itoa(i, temp, 10);
			//strcpy(caca.szName, temp);
			
			handles[i][0] = FoldersRegisterCustomPath(section, temp, FOLDER_LOGS); //CallService(MS_FOLDERS_REGISTER_PATH, 0, (LPARAM) &caca);
		}
	//caca.szFormatW = L"%profile_path%\\%current_profile%\\Ø";
	//caca.flags = FF_UNICODE;
	FoldersRegisterCustomPath("Unicode stuff", "non unicode", "   %profile_path%\\%current_profile%\\Ø\\\\\\");
	for (i = 0; i < MAX; i++)
		{
			//strcpy(caca.szSection, "Unicode stuff");
			sprintf(temp, "Value %d", i);
			//strcpy(caca.szName, temp);
			handles[i][1] = FoldersRegisterCustomPathW("Unicode stuff", temp, L"%profile_path%\\%current_profile%\\\u1FA6"); //CallService(MS_FOLDERS_REGISTER_PATH, 0, (LPARAM) &caca);
		}
/*		
	FOLDERSAPPENDDATA data;
	data.hRegisteredPath = handles[0];
	data.szAppendData = "just an appended string";
	char *cacat;
	CallService(MS_FOLDERS_GET_PATH_ALLOC_APPEND, (WPARAM) &data, (LPARAM) &cacat);
	Log("Append function returned : %s", cacat); */
	/*FOLDERSGETDATA data = {0};
	data.cbSize = sizeof(data);
	data.nMaxPathSize = sizeof(temp);
	data.szPath = temp; */
	for (i = 0; i < MAX; i++)
		{
			//CallService(MS_FOLDERS_GET_PATH, handles[i][0], (LPARAM) &data);
			FoldersGetCustomPath((HANDLE) handles[i][0], temp, sizeof(temp), "<not found>");
			Log("Path function[%d] returned : %s", i, temp);
		}
	wchar_t buffer[MAX_PATH];
	//data.szPathW = buffer;
	for (i = 0; i < MAX; i++)
		{
			//CallService(MS_FOLDERS_GET_PATH, handles[i][0], (LPARAM) &data);
			FoldersGetCustomPathW((HANDLE) handles[i][1], buffer, MAX_PATH, L"<not found>");
			Log("Unicode path function[%d] returned: %S", i, buffer);
		}
//	GetPathService(CONFIGURATION_PATH, (LPARAM) temp);
//	GetPathAllocService(AVATARS_PATH, (LPARAM) &caca);
	
	
	for (i = 0; i < MAX; i++)
	{
		FoldersGetCustomPathEx((HANDLE) handles[i][0], temp, sizeof(temp), "<not found>", "test");
		Log("Path function Ex (test) [%d] returned : %s", i, temp);
		FoldersGetCustomPathEx((HANDLE) handles[i][0], temp, sizeof(temp), "<not found>", "");
		Log("Path function Ex ()     [%d] returned : %s", i, temp);
		FoldersGetCustomPathEx((HANDLE) handles[i][0], temp, sizeof(temp), "<not found>", NULL);
		Log("Path function Ex (NULL) [%d] returned : %s", i, temp);
	}
	
	for (i = 0; i < MAX; i++)
	{
		FoldersGetCustomPathExW((HANDLE) handles[i][1], buffer, MAX_PATH, L"<not found>", L"test");
		Log("Unicode path function Ex (test) [%d] returned : %S", i, buffer);
		FoldersGetCustomPathExW((HANDLE) handles[i][1], buffer, MAX_PATH, L"<not found>", L"");
		Log("Unicode path function Ex ()     [%d] returned : %S", i, buffer);
		FoldersGetCustomPathExW((HANDLE) handles[i][1], buffer, MAX_PATH, L"<not found>", NULL);
		Log("Unicode path function Ex (NULL) [%d] returned : %S", i, buffer);
	}

	return 0;
}
Example #2
0
static BOOL CALLBACK DlgProcOptsGlobal(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
	//CNetwork* network=(CNetwork*)GetWindowLong(GetParent(hwndDlg),GWL_USERDATA);

	switch (msg) {
		case WM_INITDIALOG:	// Options dialog is being initialized
			{
				int nTemp;
				char szTemp[MAX_PATH];
				DBVARIANT dbv;
				HANDLE hContact=NULL;
				LPSTR m_szModuleName=g_dllname;

				TranslateDialogDefault(hwndDlg);

				CheckDlgButton(hwndDlg, IDC_GLOBAL_DISABLEQUN, DBGetContactSettingByte(NULL,m_szModuleName,QQ_DISABLEHTTPD,0));
				CheckDlgButton(hwndDlg, IDC_GLOBAL_WSNONLOCAL, DBGetContactSettingByte(NULL,m_szModuleName,QQ_HTTPDALLOWEXTERNAL,0));
				CheckDlgButton(hwndDlg, IDC_NOREMOVEQUNIMAGE, DBGetContactSettingByte(NULL,m_szModuleName,QQ_NOREMOVEQUNIMAGE,0));

				nTemp=READC_W2(QQ_HTTPDPORT);
				itoa(nTemp?nTemp:170,szTemp,10);
				SetDlgItemTextA(hwndDlg,IDC_GLOBAL_WSPORT,szTemp);

				if (CNetwork::m_folders[1]) {
					WCHAR szTemp[MAX_PATH];
					FoldersGetCustomPathW(CNetwork::m_folders[1],szTemp,MAX_PATH,L"QQ\\WebServer");
					SetDlgItemText(hwndDlg,IDC_GLOBAL_WSROOT,szTemp);

					EnableWindow(GetDlgItem(hwndDlg,IDC_GLOBAL_WSROOT),FALSE);
					EnableWindow(GetDlgItem(hwndDlg,IDC_GLOBAL_WSBROWSE),FALSE);
				} else {
					if (!READC_TS2(QQ_HTTPDROOT,&dbv) && *dbv.pszVal) {
						SetDlgItemText(hwndDlg,IDC_GLOBAL_WSROOT,dbv.ptszVal);
						DBFreeVariant(&dbv);
					} else
						SetDlgItemText(hwndDlg,IDC_GLOBAL_WSROOT,TranslateT("<Default>"));
				}

				return TRUE;
			}

		case WM_COMMAND:	// When a control is toggled
			switch (LOWORD(wParam)) {
				case IDC_GLOBAL_WSPORT:
				case IDC_GLOBAL_WSROOT:
					if (HIWORD(wParam) != EN_CHANGE || (HWND)lParam != GetFocus()) return 0;
					break;
				case IDC_GLOBAL_WSBROWSE:
					{
						BROWSEINFO  binfo;
						LPITEMIDLIST idlist;
						WCHAR szTemp[MAX_PATH];

						GetDlgItemText(hwndDlg, IDC_GLOBAL_WSROOT, szTemp, MAX_PATH);
						binfo.hwndOwner=hwndDlg;
						binfo.pidlRoot=NULL;
						binfo.pszDisplayName=szTemp;
						binfo.lpszTitle=TranslateT("Select Document Root");
						binfo.ulFlags=BIF_RETURNONLYFSDIRS; 
						binfo.lpfn=&BrowseCallbackProc;             //コールバック関数を指定する
						binfo.lParam=(LPARAM)szTemp;                //コールバックに渡す引数
						binfo.iImage=(int)NULL;
						idlist=SHBrowseForFolder(&binfo);
						SHGetPathFromIDList(idlist,szTemp);         //ITEMIDLISTからパスを得る
						CoTaskMemFree(idlist);                      //ITEMIDLISTの解放     99/11/03訂正
						SetDlgItemText(hwndDlg, IDC_GLOBAL_WSROOT, szTemp);
						SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
					}
					return true;
			}

			SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
			break;
		case WM_NOTIFY:		// When a notify is sent by Options Dialog (Property Sheet)
			switch (((LPNMHDR)lParam)->code)
			case PSN_APPLY:	// Apply Settings/ネキ。ヲノ靹テ
			{
				int reconnectRequired=0;
				HANDLE hContact=NULL;
				LPSTR m_szModuleName=g_dllname;
				union {
					WCHAR wszTemp[MAX_PATH];
					CHAR szTemp[MAX_PATH*2];
				};
				DBVARIANT dbv;
				int nTemp;

				if (DBGetContactSettingByte(NULL,m_szModuleName,QQ_DISABLEHTTPD,0)!=IsDlgButtonChecked(hwndDlg,IDC_GLOBAL_DISABLEQUN)) reconnectRequired=1;
				DBWriteContactSettingByte(NULL,m_szModuleName,QQ_DISABLEHTTPD,(BYTE)IsDlgButtonChecked(hwndDlg,IDC_GLOBAL_DISABLEQUN));
				DBWriteContactSettingByte(NULL,m_szModuleName,QQ_HTTPDALLOWEXTERNAL,(BYTE)IsDlgButtonChecked(hwndDlg,IDC_GLOBAL_WSNONLOCAL));
				DBWriteContactSettingByte(NULL,m_szModuleName,QQ_NOREMOVEQUNIMAGE,(BYTE)IsDlgButtonChecked(hwndDlg,IDC_NOREMOVEQUNIMAGE));

				GetDlgItemTextA(hwndDlg,IDC_GLOBAL_WSPORT,szTemp,MAX_PATH);
				nTemp=atoi(szTemp);
				if (nTemp==0)
					DELC(QQ_HTTPDPORT);
				else if (nTemp!=0 && nTemp!=READC_W2(QQ_HTTPDPORT)) {
					reconnectRequired=1;
					WRITEC_W(QQ_HTTPDPORT,nTemp);
				}

				if (!CNetwork::m_folders[1]) {
					GetDlgItemText(hwndDlg,IDC_GLOBAL_WSROOT,wszTemp,MAX_PATH);
					if (*wszTemp!=0 && !wcschr(wszTemp,'<') && !wcschr(wszTemp,'>')) {
						dbv.ptszVal=NULL;
						if (READC_TS2(QQ_HTTPDROOT,&dbv) || wcscmp(dbv.ptszVal,wszTemp)) {
							reconnectRequired=1;
							WRITEC_TS(QQ_HTTPDROOT,wszTemp);
						}
						if (dbv.ptszVal) DBFreeVariant(&dbv);
					} else
						DELC(QQ_HTTPDROOT);
				}

				// Apply Options
				if (reconnectRequired) MessageBox(hwndDlg,TranslateT("The changes you have made require you to restart Miranda IM before they take effect"),APPNAME,MB_OK);

				return TRUE;
			}
			break;
		case WM_DESTROY:
			hwndGlobal=hwndGlobalFor=0;
			break;
	}
	return FALSE;
}