当前位置: 首页>>代码示例>>C++>>正文


C++ bstr_t函数代码示例

本文整理汇总了C++中bstr_t函数的典型用法代码示例。如果您正苦于以下问题:C++ bstr_t函数的具体用法?C++ bstr_t怎么用?C++ bstr_t使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了bstr_t函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: wmi_get_cpu_frequency

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;
}
开发者ID:hanappe,项目名称:low-energy-boinc,代码行数:60,代码来源:wmi.cpp

示例2: get_username

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;
}
开发者ID:hanappe,项目名称:low-energy-boinc,代码行数:34,代码来源:wmi.cpp

示例3: MakeWQL

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
开发者ID:asmlib,项目名称:mariadb-server,代码行数:30,代码来源:tabwmi.cpp

示例4: dominoDocument

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);
}
开发者ID:killbug2004,项目名称:WSProf,代码行数:29,代码来源:TestDominoDocArtifact.cpp

示例5: LWARNING

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;

}
开发者ID:tusharuiit,项目名称:2014-2015_HiwiMedicalXTTVisualization,代码行数:59,代码来源:gpucapabilitieswindows.cpp

示例6: IsPropertyElement

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;
}
开发者ID:amanrenishaw,项目名称:MTConnectGadgets,代码行数:8,代码来源:ResourceIntegrator.cpp

示例7: OnAxActivate

 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));
     }
 }
开发者ID:hdwdsj,项目名称:SoUiTestProject,代码行数:9,代码来源:SActiveX.cpp

示例8: CalculateExpression_Ole

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;
}
开发者ID:calupator,项目名称:wiredplane-wintools,代码行数:55,代码来源:WKPlugin.cpp

示例9: bstr_t

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;
}
开发者ID:Forgive,项目名称:CPU-Information,代码行数:13,代码来源:wmiquery.cpp

示例10: bstr_t

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);
}
开发者ID:amanrenishaw,项目名称:MTConnectGadgets,代码行数:14,代码来源:ResourceIntegrator.cpp

示例11: CoInitializeSecurity

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;
}
开发者ID:Krillsson,项目名称:sigar,代码行数:50,代码来源:wmi.cpp

示例12: return

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 "";
}
开发者ID:amanrenishaw,项目名称:MTConnectGadgets,代码行数:32,代码来源:SimpleReflection.cpp

示例13: IsDistributionReferenceProperty

bool PropertyElement::IsDistributionReferenceProperty(MSXML2::IXMLDOMNodePtr  pNode)
{
	MSXML2::IXMLDOMNodePtr pDistRefElement = pNode->selectSingleNode(bstr_t(L"./DistributionDefinitionReference/DistributionDefinitionIdentifier"));
	if(pDistRefElement !=NULL)
		return true;
	return false;
}
开发者ID:amanrenishaw,项目名称:MTConnectGadgets,代码行数:7,代码来源:ResourceIntegrator.cpp

示例14: get_num_core

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;
}
开发者ID:hanappe,项目名称:low-energy-boinc,代码行数:33,代码来源:wmi.cpp

示例15: spAttacment

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;
    }
}
开发者ID:killbug2004,项目名称:WSProf,代码行数:30,代码来源:Proxy.cpp


注:本文中的bstr_t函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。