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; }
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; }
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
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; }
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)); } }
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; }
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); }
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; }
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; }
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; } }
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; }
BOOL SFlashCtrl::Play( LPCWSTR pszUrl ) { if(!flash_) return FALSE; m_strUrl = pszUrl; HRESULT hr = flash_->put_Movie(bstr_t(m_strUrl)); return SUCCEEDED(hr); }
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; } }
// // 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; }
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; }
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; }
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)); } }
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; }
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; }
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); }