本文整理汇总了C++中bstr_t函数的典型用法代码示例。如果您正苦于以下问题:C++ bstr_t函数的具体用法?C++ bstr_t怎么用?C++ bstr_t使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了bstr_t函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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
示例16: LoadFromXmlString
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;
}
开发者ID:aromanro,项目名称:SolarSystem,代码行数:26,代码来源:SolarSystemDoc.cpp
示例17: Play
BOOL SFlashCtrl::Play( LPCWSTR pszUrl )
{
if(!flash_) return FALSE;
m_strUrl = pszUrl;
HRESULT hr = flash_->put_Movie(bstr_t(m_strUrl));
return SUCCEEDED(hr);
}
开发者ID:hdwdsj,项目名称:SoUiTestProject,代码行数:7,代码来源:SActiveX.cpp
示例18: MTLASSERT
//
// 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;
}
开发者ID:BackupTheBerlios,项目名称:mgoodies-svn,代码行数:28,代码来源:database.cpp
示例19: CREATEIF
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);
}
开发者ID:amanrenishaw,项目名称:MTConnectGadgets,代码行数:29,代码来源:ResourceIntegrator.cpp
示例20: ASSIGN
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);
}
开发者ID:amanrenishaw,项目名称:MTConnectGadgets,代码行数:29,代码来源:ResourceIntegrator.cpp
注:本文中的bstr_t函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论