Exemplo n.º 1
0
int wmi_get_cpu_frequency(float* pcpu_frequency) {

	assert(_initialized);
	assert(pcpu_frequency);

	float& cpu_frequency = *pcpu_frequency;

	IEnumWbemClassObject *enumerator = 0;
	IWbemClassObject * object = 0;

	// Use the IWbemServices pointer to make requests of WMI ----
	static const bstr_t WQL = bstr_t("WQL");
	static const bstr_t Query = bstr_t("SELECT CurrentClockSpeed FROM Win32_Processor");

	HRESULT result = services->ExecQuery(WQL,
		Query,
		WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
		NULL,
		&enumerator
	);

	if (FAILED(result)) {
		log_err("Query for operating system name failed."
					 " Error code = %d \n", result);
        services->Release();
        locator->Release();
        CoUninitialize();

		//TODO return valid error
        return -1;
    }

	VARIANT variant;
	ULONG uReturn;

	for(;;)
	{
		result = enumerator->Next(WBEM_INFINITE, 1, &object, &uReturn);
			
		if(0 == uReturn) {
			break;
		}

		VariantInit(&variant);

		result = object->Get(L"CurrentClockSpeed", 0, &variant, 0, 0);
		if (result == WBEM_S_NO_ERROR) {
				//Variant::Print(variant);
				cpu_frequency = (float)variant.iVal;
		}


		object->Release();
	}

	if (enumerator)
		enumerator->Release();	

	return 0;
}
Exemplo n.º 2
0
static int get_username() {
	
	IEnumWbemClassObject *enumerator = 0;
	IWbemClassObject * object = 0;

	bool res = false;
	_username = bstr_t();
	enumerator = request(bstr_t("select UserName from Win32_ComputerSystem"));

	VARIANT vUsername;
	VariantInit(&vUsername);

	ULONG uReturn;
	for(;;) {
		HRESULT result = enumerator->Next(WBEM_INFINITE, 1, &object, &uReturn);
		if(uReturn == 0) {
			break;
		}
		result = object->Get(L"UserName", 0, &vUsername, 0, 0);

		if (SUCCEEDED(result)) {
			_username = GetShortName(vUsername.bstrVal);
			res = true;
		}
		object->Release();
	}

	if (enumerator)
		enumerator->Release();

	//std::cout << "get_username(): " << _username << std::endl;

	return res;
}
Exemplo n.º 3
0
bool TDBWMI::GetWMIInfo(PGLOBAL g)
  {
  if (Done)
    return false;

  char *cmd = MakeWQL(g);

  if (cmd == NULL) {
    sprintf(g->Message, "Error making WQL statement"); 
    Svc->Release();
    CoUninitialize();
    return true;               // Program has failed.
    }  // endif cmd

  // Query for Wclass in Nspace
  Rc = Svc->ExecQuery(bstr_t("WQL"), bstr_t(cmd),
//    WBEM_FLAG_BIDIRECTIONAL | WBEM_FLAG_RETURN_IMMEDIATELY, 
      WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, 
      NULL, &Enumerator);
  
  if (FAILED(Rc)) {
    sprintf(g->Message, "Query %s failed. Error code = %p", cmd, Rc); 
    Svc->Release();
    CoUninitialize();
    return true;               // Program has failed.
    }  // endif Rc

  Done = true;
  return false;
  } // end of GetWMIInfo
Exemplo n.º 4
0
void TestDominoDocArtifact::TestCreateRelatedDocumentWithTmpFileName()
{
	DomDocHelper dominoDocument(TEST_ARTIFACT_FILE);      
	DominoDocArtifact artifact(m_spLibrary, dominoDocument.DocumentId, dominoDocument.GetVersionLabel());

	std::wstring tempFile = _bstr_t(CTempFileManager::GetTempFileName().c_str());
	std::wstring extension  = PathFindExtensionW(tempFile.c_str());  
	std::wstring w3TempFile = tempFile.substr(0, tempFile.length() - extension.length());
	w3TempFile.append(L".W3");

	rename(bstr_t(tempFile.c_str()), bstr_t(w3TempFile.c_str()));

	std::tofstream outFile(w3TempFile.c_str());
	outFile << _T("Some junk") << std::endl;
	outFile.close();

	Artifact relatedArtifact = artifact.CreateRelatedItem(w3TempFile, L"W3", L"", false);
	DominoDocManager  manager;
	manager.SetDocumentToDelete(relatedArtifact);
	CTempFileManager::DeleteTempFileName(w3TempFile);

	std::wstring dominoFileName = GetDominoDocumentFileName(relatedArtifact, m_spLibrary);
	extension = PathFindExtensionW(dominoFileName.c_str());  
	dominoFileName = dominoFileName.substr(0, dominoFileName.length() - extension.length());

	assertEqualsNoCase(_T(".W3"), bstr_t(extension.c_str()));
	assertEquals(artifact.Name, dominoFileName);
	assertEquals(artifact.Name + L".W3", relatedArtifact.Name);
}
VARIANT* GpuCapabilitiesWindows::WMIquery(std::string wmiClass, std::string attribute) {

    // Code based upon:  "Example: Getting WMI Data from the Local Computer"
    // http://msdn2.microsoft.com/en-us/library/aa390423.aspx

    if (!isWMIinited()) {
        LWARNING("WMI not initiated");
        return 0;
    }

    HRESULT hres;
    VARIANT* result = 0;

    // Step 6: --------------------------------------------------
    // Use the IWbemServices pointer to make requests of WMI ----
    IEnumWbemClassObject* pEnumerator = NULL;
    std::string query = "SELECT " + attribute + " FROM " + wmiClass;
    hres = pWbemServices_->ExecQuery(
        bstr_t("WQL"),
        bstr_t(query.c_str()),
        WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
        NULL,
        &pEnumerator);

    if (FAILED(hres)) {
        LWARNING("ERROR: WMI query failed: " << query);
        return 0;
    }

    // Step 7: -------------------------------------------------
    // Get the data from the query in step 6 -------------------

    IWbemClassObject* pclsObj = 0;
    ULONG uReturn = 0;

    if (pEnumerator) {
        HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
            &pclsObj, &uReturn);

        if (uReturn) {
            // Get the value of the attribute and store it in result
            result = new VARIANT;
            hr = pclsObj->Get(LPCWSTR(str2wstr(attribute).c_str()), 0, result, 0, 0);
        }
    }

    if (!result) {
        LWARNING("No WMI query result");
    }

    // Clean enumerator and pclsObject
    if (pEnumerator)
        pEnumerator->Release();
    if (pclsObj)
        pclsObj->Release();

    return result;

}
bool PropertyElement::IsPropertyElement(MSXML2::IXMLDOMNodePtr  pNode)
{
	MSXML2::IXMLDOMNodePtr pNameElement = pNode->selectSingleNode(bstr_t(L"Name"));
	MSXML2::IXMLDOMNodePtr pValueElement = pNode->selectSingleNode(bstr_t(L"Value"));
	if(pNameElement!=NULL && pValueElement !=NULL)
		return true;
	return false;
}
Exemplo n.º 7
0
 void SFlashCtrl::OnAxActivate( IUnknown *pUnknwn )
 {
     flash_=pUnknwn;
     if(flash_)
     {
         flash_->put_WMode(bstr_t(_T("transparent")));
         if(!m_strUrl.IsEmpty()) flash_->put_Movie(bstr_t(m_strUrl));
     }
 }
Exemplo n.º 8
0
BOOL CalculateExpression_Ole(CString& sExpr, CString sLang, BOOL bInSilence, int iEntryPoint)
{
	cs.Lock();
	int iRes=0;
	::CoInitialize(NULL);
	BOOL bJScriptLang=(sLang=="JScript" || sLang=="");
	BOOL bVBScriptLang=(sLang=="VBScript");
	if(bJScriptLang || bVBScriptLang)
	{// Создаем область видимости чтобы разрушение ком-объекта было нормальным
		MSScriptControl::IScriptControlPtr ScriptEngine;
		ScriptEngine.CreateInstance("MSScriptControl.ScriptControl"); 
		if(bJScriptLang){
			ScriptEngine->Language="JScript";
		}else if(bVBScriptLang){
			ScriptEngine->Language="VBScript";
		}else{
			ScriptEngine->Language=(const char*)sLang;
		}
		ScriptEngine->Timeout = -1;//No timeout
		try {//RET_FAIL(spAS->AddNamedItem(OLESTR("MyObject"), SCRIPTITEM_ISVISIBLE | SCRIPTITEM_ISSOURCE), "IActiveScript::AddNamedItem()");
			_variant_t result;
			if(!bJScriptLang){
				sExpr=CString("Dim OUTPUT\r\n")+sExpr;
				ScriptEngine->ExecuteStatement(bstr_t(sExpr));
				sExpr="OUTPUT";
				result=ScriptEngine->Eval(bstr_t(sExpr));
			}else{
				result=ScriptEngine->Eval(bstr_t(sExpr));
			}
			sExpr=(const char*)_bstr_t(result);
			iRes=1;
		}catch(_com_error err){
			if(!bInSilence){
				//FLOG1("Script error: \n%s\n",sExpr)
				CString sErr((BSTR)err.Description());
				CString sErrSource((BSTR)err.Source());
				if(sErrSource!=""){
					sErr+="\n";
					sErr+=sErrSource;
				}
				if(sErr==""){
					sErr=GetCOMError(err.Error());
				}
				AfxMessageBox(sErr);
			}
			iRes=-1;
		};
	}else
	{// Загружаем дллку
		iRes=FALSE;
	}
	::CoUninitialize();
	cs.Unlock();
	return iRes;
}
Exemplo n.º 9
0
VARIANT WMIQuery::requestData(const char* WMIClass, LPCWSTR dataName) {
	result = services->ExecQuery(bstr_t("WQL"), bstr_t("SELECT * FROM ") + bstr_t(WMIClass), WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &enumerator);
	ULONG uReturn;
	while(enumerator) {
		HRESULT result = enumerator->Next(WBEM_INFINITE, 1, &object, &uReturn);
		if(0 == uReturn) {
			break;
		}
		result = object->Get(dataName, 0, &returnVariant, 0, 0);
		return returnVariant;
	}
	return returnVariant;
}
void PropertyElement::Save(CMSD::CProperty & prop)
{
	if((name == bstr_t(L"None") && value == bstr_t(L"None")) ||
		(name == bstr_t(L"") && value == bstr_t(L""))
		)
	{
		MSXML2::IXMLDOMNodePtr  pNode = prop.GetNode()->GetparentNode(); 
		pNode->removeChild(prop.GetNode()); 
		return;
	}
	prop.Name.append() = std::string((LPCSTR) this->name);
	prop.Value2.append() = std::string((LPCSTR) value);
	CREATEIF(prop.Description.append(), description);
}
Exemplo n.º 11
0
HRESULT WMI::Open(LPCTSTR machine, LPCTSTR user, LPCTSTR pass)
{
    IWbemLocator *locator;
    wchar_t path[MAX_PATH];

    if (wbem) {
        result = S_OK;
        return result;
    }

    result =
        CoInitializeSecurity(NULL,                        //Security Descriptor
                             -1,                          //COM authentication
                             NULL,                        //Authentication services
                             NULL,                        //Reserved
                             RPC_C_AUTHN_LEVEL_DEFAULT,   //Default authentication
                             RPC_C_IMP_LEVEL_IMPERSONATE, //Default Impersonation
                             NULL,                        //Authentication info
                             EOAC_NONE,                   //Additional capabilities
                             NULL);                       //Reserved

    result = CoCreateInstance(CLSID_WbemLocator,
                              NULL, /* IUnknown */
                              CLSCTX_INPROC_SERVER,
                              IID_IWbemLocator,
                              (LPVOID *)&locator);

    if (FAILED(result)) {
        return result;
    }

    if (machine == NULL) {
        machine = L".";
    }

    wsprintf(path, L"\\\\%S\\ROOT\\CIMV2", machine);

    result = locator->ConnectServer(bstr_t(path), //Object path of WMI namespace
                                    bstr_t(user), //User name. NULL = current user
                                    bstr_t(pass), //User password. NULL = current
                                    NULL,         //Locale. NULL indicates current
                                    0,            //Security flags
                                    NULL,         //Authority (e.g. Kerberos)
                                    NULL,         //Context object
                                    &wbem);       //pointer to IWbemServices proxy

    locator->Release();

    return result;
}
std::string IObject::GetValue(int index)
{
	MyStructMeta ** meta = this->GetMetaData();

	if(index < 0 || index >= HeaderCount())
	{
		return ""; 
	}
	
	MyStructMeta * ameta =  meta[index];

	if(ameta->eType == type_is_bstr_t)
	{
		return ( (LPCSTR) *(bstr_t *) ((char *) this + ameta->oFieldOffset) );
	}
	// treat like a vector of bstr for now  name=value(units)description,...
	// Big problem is multiline descriptions - not handled
	else if(ameta->eType == type_is_propertylist) 
	{
		std::vector<bstr_t> * bstrs = (std::vector<bstr_t> *) ((char *) this + ameta->oFieldOffset);
		bstr_t a = accumulate( (*bstrs).begin(), (*bstrs).end(), bstr_t("") );
		return ((LPCSTR) a);

	}
	else if(ameta->eType == type_is_array)  // comma delimited string
	{
		std::vector<bstr_t> * bstrs = (std::vector<bstr_t> *) ((char *) this + ameta->oFieldOffset);
		bstr_t a = GetCommaString(bstrs,","); // accumulate( (*bstrs).begin(), (*bstrs).end(), bstr_t(",") );
		return ((LPCSTR) a);
	}
	return "";
}
bool PropertyElement::IsDistributionReferenceProperty(MSXML2::IXMLDOMNodePtr  pNode)
{
	MSXML2::IXMLDOMNodePtr pDistRefElement = pNode->selectSingleNode(bstr_t(L"./DistributionDefinitionReference/DistributionDefinitionIdentifier"));
	if(pDistRefElement !=NULL)
		return true;
	return false;
}
Exemplo n.º 14
0
static int get_num_core() {
	IEnumWbemClassObject *enumerator = 0;
	IWbemClassObject * object = 0;

	int res = -1;
	_num_core = 0;
	enumerator = request(bstr_t("select NumberOfCores from Win32_Processor"));

	VARIANT vUsername;
	VariantInit(&vUsername);

	ULONG uReturn;
	for(;;) {
		HRESULT result = enumerator->Next(WBEM_INFINITE, 1, &object, &uReturn);
		if(uReturn == 0) {
			break;
		}
		result = object->Get(L"NumberOfCores", 0, &vUsername, 0, 0);

		if (SUCCEEDED(result)) {
			_num_core = vUsername.uiVal;
			res = 0;
		}
		object->Release();
	}

	if (enumerator)
		enumerator->Release();

	//std::cout << "get_num_core(): " << _num_core << std::endl;

	return res;
}
Exemplo n.º 15
0
STDMETHODIMP Proxy::GetAttachmentById(BSTR id, IAttachment** pValue)
{
    try
    {
        if(!pValue)
            return E_POINTER;

        long size = m_attachments.GetSize();
        if(0 == size)
            return E_FAIL;

        for(long index = 0; index != size; ++index)
        {
            CComPtr<IAttachment> spAttacment(m_attachments[index]);
            bstr_t contentId;
            spAttacment->GetContentId(contentId.GetAddress());
            if(contentId == bstr_t(id))
            {
                *pValue = spAttacment.Detach();
                return S_OK;
            }
        }
        *pValue = NULL;
        return E_FAIL;
    }
    catch(...)
    {
        return E_FAIL;
    }
}
Exemplo n.º 16
0
HRESULT CSolarSystemDoc::LoadFromXmlString(const CString& str)
{
	if (str.IsEmpty()) return E_FAIL;

	MSXML::IXMLDOMDocumentPtr pDocument;

	HRESULT hResult = pDocument.CreateInstance(__uuidof(DOMDocument));

	if (FAILED(hResult)) return hResult;

	try
	{
		pDocument->async = VARIANT_FALSE;

		if (VARIANT_FALSE == pDocument->loadXML(bstr_t(str)))
			return E_FAIL;

		ParseXmlDocument(pDocument);
	}
	catch (_com_error &e)
	{
		return e.Error();
	}

	return S_OK;
}
Exemplo n.º 17
0
 BOOL SFlashCtrl::Play( LPCWSTR pszUrl )
 {
     if(!flash_) return FALSE;
     m_strUrl = pszUrl;
     HRESULT hr = flash_->put_Movie(bstr_t(m_strUrl));
     return SUCCEEDED(hr);
 }
Exemplo n.º 18
0
STDMETHODIMP Proxy::ContainsAttachment(BSTR id, BOOL* pValue)
{
    try
    {
        if(!pValue)
            return E_POINTER;

        *pValue = FALSE;

        long size = m_attachments.GetSize();
        if(0 == size)
            return E_FAIL;

        for(long index = 0; index != size; ++index)
        {
            CComPtr<IAttachment> spAttacment(m_attachments[index]);
            bstr_t contentId;
            spAttacment->GetContentId(contentId.GetAddress());
            if(contentId == bstr_t(id))
            {
                *pValue = TRUE;
                return S_OK;
            }
        }
        return S_OK;
    }
    catch(...)
    {
        return E_FAIL;
    }
}
Exemplo n.º 19
0
//
// Support for SiP plugin by TOXIC
//
bstr_t CDatabase::GetContactSettingWStringFromSiP(HANDLE hContact, const char* param) const
{
    MTLASSERT(param && lstrlenA(param) > 0);

    bstr_t res(L"");

    DBVARIANT dbv;

    DBCONTACTGETSETTING cgs;
    cgs.szModule  = "SiP";
    cgs.szSetting = param;
    cgs.pValue    = &dbv;
    dbv.type      = DBVT_ASCIIZ;

    if(S_OK == CallService(MS_DB_CONTACT_GETSETTING_STR, (WPARAM)hContact, (LPARAM)&cgs))
    {
        MTLASSERT(DBVT_ASCIIZ == dbv.type);

        res = bstr_t(dbv.pszVal);

        DBFreeVariant(&dbv);
    }

    return res;
}
void ProcessPlan::Save(CMSD::CProcessPlan &processplan)
{
	CREATEIF(processplan.Identifier.append() , identifier);	
	CREATEIF(processplan.FirstProcess.append().ProcessIdentifier.append() , firstProcessId);	
	//CREATEIFBSTR(processplan.RepetitionCount.append().GetNode()->text , repetitionCount);	

	// Assign process sequence
	if(processSequenceName!=bstr_t(L"None"))
	{
		CMSD::CProcess process = processplan.Process.append();
		process.Identifier.append() = std::string((LPCSTR) processSequenceName);
		//CREATEIFBSTR(process.RepetitionCount.append().GetNode()->text , repetitionCount);	
		if(steps.size() > 0)
		{
			process.SubProcessGroup.append();
			for(int i=0; i< steps.size(); i++)
			{
				CREATEIF(process.SubProcessGroup[0].Process.append().ProcessIdentifier.append(),steps[i]);
			}
		}
	}
	for(int i=0; i< this->processIds.size(); i++)
	{
		Process * process =	FindProcess(processIds[i]);
		if(process!=NULL)
			process->Save(processplan.Process.append());
	}
	PropertyElement().SaveProperties<CMSD::CProcessPlan>(processplan, properties);
}
void ProcessPlan::Load(MSXML2::IXMLDOMNodePtr  ini)
{
	CMSD::CProcessPlan pp = ini;
	ASSIGN(identifier ,((std::string) pp.Identifier[0]).c_str(), L"None");
	ASSIGN(firstProcessId ,((std::string) pp.FirstProcess[0].ProcessIdentifier[0]).c_str(), L"None");
	//ASSIGN(repetitionCount, pp.RepetitionCount[0].GetNode()->text,L"None");
	for(int i=0; i<pp.Process.count();i++)
	{
		// If its a sequence process, push into process plan, and continue
		if(pp.Process[i].SubProcessGroup.count()>0)
		{
			ASSIGN(processSequenceName , ((std::string) pp.Process[i].Identifier[0]).c_str(), L"None");
			for(int j=0; j< pp.Process[i].SubProcessGroup[0].Process.count(); j++)
			{
				bstr_t processid;// = ((std::string)process.SubProcessGroup[i].ResourceIdentifier[0]).c_str();
				ASSIGN(processid,((std::string) pp.Process[i].SubProcessGroup[0].Process[j].ProcessIdentifier[0]).c_str(),L"None");
				if(processid!=bstr_t(L"None"))
					steps.push_back(processid);
			}
			continue;
		}

		Process* process ( (Process *)  IObject::CreateSave<Process>());
		process->Load(pp.Process[i].GetNode());
		processes.push_back(process);
		processIds.push_back(process->identifier);
	}
	PropertyElement().LoadProperties<CMSD::CProcessPlan>(pp, properties);  
}
void CThreadManager::InitFromDB(CDataStorage *pdb) 
{ 
	CSLock cslock(mCSGuardTupleLists);

	mDB=pdb; 
	ADODB::_RecordsetPtr pRS=NULL;
	char sSQL[1000];
	CToken aToken;
	CComVariant cvTokens, freq, docfreq, neverdel, dbid;

	sprintf(sSQL, "exec sp_GetMaxConceptID"); 
	if (mDB->OpenRecordset(pRS, sSQL))
	{
		mNextConcept_DBID = (long) pRS->Fields->Item["maxval"]->Value + 1;
	}

	for (int i=1; i<7; i++)
	{
		sprintf(sSQL, "exec sp_GetConcepts %d", i); 
		if (mDB->OpenRecordset(pRS, sSQL))
		{

			while (!pRS->EndOfFile)
			{
				aToken.clear();

				aToken.DBID((long)pRS->Fields->Item["ID"]->Value);
				
				cvTokens = pRS->Fields->Item["Tokens"]->Value;
				aToken.set((char*) bstr_t(cvTokens.bstrVal),0);
				
				aToken.Freq((long)pRS->Fields->Item["Frequency"]->Value);
				aToken.DocFreq((long)pRS->Fields->Item["DocFrequency"]->Value);
				aToken.Perm((int)pRS->Fields->Item["Perm"]->Value);

				mTupleLists[i].InitAdd(aToken);

				pRS->MoveNext();
			}

			pRS->Close();
		}
	}

	//sprintf(sSQL, "SELECT count(*) as total  FROM  [Concepts]"); 
	//if (mDB->OpenRecordset(pRS, sSQL))
	//{
	//	if (!pRS->EndOfFile)
	//	{
	//		CComVariant total = pRS->Fields->Item["total"]->Value;
	//		mNextConcept_DBID = total.lVal + 1;
	//	}

	//	//pRS->MoveNext();
	//	pRS->Close();
	//}

	//Build the mTupleLists from DB
}
bstr_t CCMSDIntegrator::GetProperty(MSXML2::IXMLDOMNodePtr pNode,bstr_t PropName, bstr_t defaultVal, bstr_t NodeType)
{
	MSXML2::IXMLDOMNodeListPtr properties = pNode->selectNodes(NodeType);
	for(int j=0; j< properties->length; j++)
	{
		MSXML2::IXMLDOMNodePtr pProp = NULL;					
		properties->get_item(j, &pProp);
		MSXML2::IXMLDOMNodePtr pName = pProp->selectSingleNode(bstr_t(".//Name"));
		MSXML2::IXMLDOMNodePtr pValue = pProp->selectSingleNode(bstr_t(".//Value"));
		bstr_t propName =  (pName!=NULL) ? pName->Gettext() : L"None";
		if( propName == PropName)
		{
			return (pValue!=NULL) ? pValue->Gettext() : defaultVal;
		}
	}
	return defaultVal;
}
Exemplo n.º 24
0
BOOL ShareLog::GetLog( Json::Value &log_value )
{
    HRESULT hr;
    CComPtr<IEnumWbemClassObject> enumerator;
    hr = WbemServices::GetInstance().GetPtr()->ExecQuery(
        bstr_t("WQL"), 
        bstr_t("select * from Win32_Share where Type<2147483648 and Status='OK'"),
        WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, 
        NULL,
        &enumerator);

    if (FAILED(hr)) {
        return FALSE;
    }

    BOOL retval = FALSE;
    CString path;
    while (enumerator)
    {

        CComPtr<IWbemClassObject> class_obj;
        ULONG return_length = 0;

        hr = enumerator->Next(WBEM_INFINITE, 1, 
            &class_obj, &return_length);

        if(0 == return_length) {
            break;
        }

        VARIANT v;
        VariantInit(&v);
        hr = class_obj->Get(L"Path", 0, &v, 0, 0);
        if (v.vt == VT_BSTR) {
            retval = TRUE;
            path = v.bstrVal;
            Json::Value item;
            item["path"] = CT2A(path.GetString()).m_psz;
            log_value.append(item);
        }
        VariantClear(&v);
    }

    return retval;
}
Exemplo n.º 25
0
 BOOL _GetEnumerator(IEnumWbemClassObject*& pEnumerator, const CStringA& cstrClass)
 {
     BOOL bRet = FALSE;
     if (m_pServices != NULL)
     {
         HRESULT hres = m_pServices->ExecQuery(
             bstr_t("WQL"),
             bstr_t("SELECT * FROM " + cstrClass),
             WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
             NULL,
             &pEnumerator);
         if (SUCCEEDED(hres))
         {
             bRet = TRUE;
         }
     }
     return bRet;
 }
MappedValues CCMSDIntegrator::GetNameValueProperties(MSXML2::IXMLDOMNodePtr pNode, bstr_t NodeType)
{
	MappedValues namedvalues;
	MSXML2::IXMLDOMNodeListPtr properties= pNode->selectNodes(NodeType);
	for(int j=0; j< properties->length; j++)
	{
		MSXML2::IXMLDOMNodePtr pProp = NULL;					
		properties->get_item(j, &pProp);
		MSXML2::IXMLDOMNodePtr pName = pProp->selectSingleNode(bstr_t(".//Name"));
		MSXML2::IXMLDOMNodePtr pValue = pProp->selectSingleNode(bstr_t(".//Value"));
		bstr_t propName =  (pName!=NULL) ? pName->Gettext() : L"None";
		bstr_t propValue = (pValue!=NULL) ? pValue->Gettext() :  L"None";
		if( propName != bstr_t(L"None") && propValue != bstr_t(L"None"))
		{
			namedvalues[propName]=propValue;
		}
	}
	return namedvalues;
}
Exemplo n.º 27
0
void AddinUi::InstallButtons(Office::CommandBarControlsPtr menu_items, CMenu* popup_menu )
{
	// For each items in the menu,

	for (UINT i = 0; i < popup_menu->GetMenuItemCount(); ++i)
	{
		CMenu* sub_menu = popup_menu->GetSubMenu(i);

		// set item caption
		CString item_caption;
		popup_menu->GetMenuString(i, item_caption, MF_BYPOSITION);

		// create new menu item.
		Office::CommandBarControlPtr item;
		menu_items->Add(
			variant_t(long(Office::msoControlButton)), 
			vtMissing, 
			vtMissing, 
			vtMissing, 
			variant_t(true),
			&item);

		// obtain command id from menu
		UINT command_id = popup_menu->GetMenuItemID(i);

		CString caption;
		caption.LoadString(command_id);
		item->put_Caption(bstr_t(caption));

		CString parameter;
		parameter.Format(L"%d", command_id);
		item->put_Parameter(bstr_t(parameter));

		// Set unique tag, so that the command is not lost
		CString tag;
		tag.Format(L"%s_%d", ADDON_NAME, command_id);
		item->put_Tag(bstr_t(tag));

		UpdateButton(item, command_id);

		m_buttons.Add(new ClickEventRedirector(item, tag, command_id));
	}
}
Exemplo n.º 28
0
void __stdcall CWtlHtmlView::OnBeforeNavigate2 (
	IDispatch* pDisp, VARIANT* URL, VARIANT* Flags, VARIANT* TargetFrameName,
	VARIANT* PostData, VARIANT* Headers, VARIANT_BOOL* Cancel )
{
	std::string url ((LPCSTR) bstr_t(URL));
	std::string data ((LPCSTR) bstr_t(PostData));
	std::string hdrs ((LPCSTR) bstr_t(Headers));

//	if(url._host == "localhost") //  
	if(url.find("localhost") != std::string::npos ) //  
	{
		std::vector<FcnLognotify>  &listeners(listenerMap["Step"]);
		for(int i=0; i< listeners.size(); i++)
			listeners[i](url.c_str() );

	}
	// Return TRUE to cancel
	*Cancel = VARIANT_TRUE;
}
Exemplo n.º 29
0
BOOL GuestConfig::IsEnabled(BOOL &enable)
{
    HRESULT hr;
    CComPtr<IEnumWbemClassObject> enumerator;
    hr = WbemServices::GetInstance().GetPtr()->ExecQuery(
        bstr_t("WQL"), 
        bstr_t("select * from Win32_UserAccount where LocalAccount=TRUE AND Name='Guest'"),
        WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, 
        NULL,
        &enumerator);

    if (FAILED(hr)) {
        return FALSE;
    }

    BOOL retval = FALSE;
    CString status;
    while (enumerator)
    {
        CComPtr<IWbemClassObject> class_obj;
        ULONG return_length = 0;

        hr = enumerator->Next(WBEM_INFINITE, 1, 
            &class_obj, &return_length);

        if(0 == return_length) {
            break;
        }

        VARIANT v;
        VariantInit(&v);
        hr = class_obj->Get(L"Status", 0, &v, 0, 0);
        if (v.vt == VT_BSTR) {
            retval = TRUE;
            status = v.bstrVal;
        }
        VariantClear(&v);
    }

    enable = status.Compare(TEXT("Degraded")) != 0;
    return retval;
}
Exemplo n.º 30
0
void TestDominoDocArtifact::TestCreateRelatedDocumentWithoutExtension()
{
	DomDocHelper dominoDocument(TEST_ARTIFACT_FILE);      
	DominoDocArtifact artifact(m_spLibrary, dominoDocument.DocumentId, dominoDocument.GetVersionLabel());

	std::wstring fileToRelate(TEST_ARTIFACT_FILE_NOEXT);
	Artifact relatedArtifact = artifact.CreateRelatedItem(fileToRelate, L"W3", L"formats", false);
	DominoDocManager  manager;
	manager.SetDocumentToDelete(relatedArtifact);
	assertEqualsNoCase(_T("W3"), bstr_t(relatedArtifact.FileExtension.c_str()));
	assertEquals(artifact.Name + L".W3", relatedArtifact.Name);
}