コード例 #1
0
ファイル: icq_db.cpp プロジェクト: raoergsls/miranda
int CIcqProto::setSettingBlob(HANDLE hContact, const char *szSetting, const BYTE *pValue, const int cbValue)
{
  return DBWriteContactSettingBlob(hContact, m_szModuleName, szSetting, (void*)pValue, cbValue);
}
コード例 #2
0
ファイル: findwindow.cpp プロジェクト: TonyAlloa/miranda-dev
int replaceModule(HWND hwnd, HANDLE hContact, const char *module, const char *find, const char *replace, int mode)
{

	ModuleSettingLL msll;
	struct ModSetLinkLinkItem *setting;
	char *myreplace = NULL;
	char *newModule;
	int count = 0;

	if (mode & RW_FULL)
		newModule = (char*)replace;
	else
	{
		myreplace = multiReplace(module, find, replace, mode & RW_CASE);
		newModule = myreplace;
	}

	if (newModule[0]==0)
	{
		ItemFound(hwnd,hContact,module,NULL,NULL,FW_MODULE|FW_DELETED);
		deleteModule((char*)module, hContact, 1);
		replaceTreeItem(GetDlgItem(hwnd2mainWindow,IDC_MODULES), hContact, module, NULL);
		mir_free(myreplace);
		return 1;
	}

	if (!IsModuleEmpty(hContact, newModule))
		return 0;

	if (EnumSettings(hContact,(char*)module,&msll))
	{
		setting = msll.first;

		while(setting)
		{
			DBVARIANT dbv;

			if (!GetSetting(hContact, module, setting->name, &dbv))
			{
				switch (dbv.type)
				{
					case DBVT_BYTE:
						DBWriteContactSettingByte(hContact, newModule, setting->name, dbv.bVal);
					break;
					case DBVT_WORD:
						DBWriteContactSettingWord(hContact, newModule, setting->name, dbv.wVal);
					break;
					case DBVT_DWORD:
						DBWriteContactSettingDword(hContact, newModule, setting->name, dbv.dVal);
					break;
					case DBVT_ASCIIZ:
						DBWriteContactSettingString(hContact, newModule, setting->name, dbv.pszVal);
					break;
					case DBVT_UTF8:
						DBWriteContactSettingStringUtf(hContact, newModule, setting->name, dbv.pszVal);
					break;
					case DBVT_BLOB:
						DBWriteContactSettingBlob(hContact, newModule, setting->name, dbv.pbVal, dbv.cpbVal);
					break;
				}

				DBFreeVariant(&dbv);
				DBDeleteContactSetting(hContact, module, setting->name);
			}

			setting = (struct ModSetLinkLinkItem *)setting->next;
		}
		FreeModuleSettingLL(&msll);

		replaceTreeItem(GetDlgItem(hwnd2mainWindow,IDC_MODULES), hContact, module, newModule);

		ItemFound(hwnd,hContact,newModule,NULL,NULL,FW_MODULE|FW_REPLACED);
		count++;
	}

	mir_free(myreplace);

	return count;
}