コード例 #1
0
void TestStringTable::testSimple()
{
	Cx_Interface<Ix_StringTable> pIFTable(CLSID_StringTable);
	ASSERT(pIFTable);

	pIFTable->LoadFiles(L"");

	std::wstring value, module, id;

	ASSERT(pIFTable->GetValue(value, L"StringTable", L"IDS_LOAD_STRFILE"));
	ASSERT(pIFTable->GetValue(value, L"@StringTable:IDS_LOAD_STRFILE", module, id)
		&& module == L"StringTable" && id == L"IDS_LOAD_STRFILE");

	ASSERT(!pIFTable->GetValue(value, L"StringTable", L"XXX"));
	ASSERT(!pIFTable->GetValue(value, L"XXX", L"XXX"));
}
コード例 #2
0
ファイル: Cx_LogManager.cpp プロジェクト: 1070094289/x3c
bool Cx_LogManager::CheckMsgParam(std::wstring& msg2,
    std::wstring& extra2, std::wstring& module, std::wstring& idname,
    const wchar_t* msg, const wchar_t* extra)
{
    bool ret = false;

    msg2 = msg ? msg : L"";
    extra2 = extra ? extra : L"";

    if (!msg2.empty() && L'@' == msg2[0])  // @Module:IDS_XXX
    {
        Cx_Interface<Ix_StringTable> pIFTable(x3::CLSID_StringTable);
        ret = pIFTable && pIFTable->GetValue(msg2, msg2, module, idname);

        if (msg2.empty())
        {
            msg2 = idname;
        }
    }

    return ret;
}