コード例 #1
0
//This is used to get the value for an element in a group.
//The element is identified by the dwCookie parameter
STDMETHODIMP CComPolygon::GetElementValue(
	/* [in] */ DISPID dispID,
	/* [in] */ DWORD dwCookie,
	/* [out] */ VARIANT * pVarOut)
{
    CHECKOUTPARAM(pVarOut);
    if (dispID >= DISPID_NORMAL && dispID <= DISPID_STARTPOINT)
    {
        try
        {
            if (dwCookie>2)
                throw Acad::eInvalidInput;
            Acad::ErrorStatus es;
            AcAxObjectRefPtr<AsdkPoly> pPoly(&m_objRef,AcDb::kForRead,Adesk::kTrue);
	        if((es=pPoly.openStatus()) != Acad::eOk)
                throw es;

            AcAxPoint3d pt;
			Adesk::Boolean bAsVector=Adesk::kFalse;
			if (dispID == DISPID_NORMAL)
            {
                pt = pPoly->normal();
                //translate from wcs to ucs
                acdbWcs2Ucs(asDblArray(pt),asDblArray(pt),Adesk::kTrue);
                ::VariantCopy(pVarOut,&CComVariant(pt[dwCookie]));
            } else {
                AcAxPoint2d pt2d;
			    switch (dispID)
			    {
			    case DISPID_CENTER:
				    pt2d = pPoly->center();
				    break;
			    case DISPID_STARTPOINT:
				    pt2d = pPoly->startPoint();
				    break;
			    default:
				    throw Acad::eInvalidInput;
			    }
                pt.set(pt2d.x,pt2d.y,pPoly->elevation());
                //translate from wcs to ucs
                acdbEcs2Ucs(asDblArray(pt),asDblArray(pt),asDblArray(pPoly->normal()),Adesk::kFalse);
                ::VariantCopy(pVarOut,&CComVariant(pt[dwCookie]));
            }
        }
        catch(const Acad::ErrorStatus)
        {
            return Error(L"Failed to open object",IID_IComPolygon,E_FAIL);
        }
        catch(const HRESULT hr)
        {
            return Error(L"Invalid argument.",IID_IComPolygon,hr);
        }
    }
	return S_OK;
}
コード例 #2
0
void WebHandler::GetChatMessage()
{
    CComQIPtr<IHTMLElementCollection> allElements;
    HRESULT hr = S_FALSE;
    //hr = htmlDocument_->get_all(&allElements);	//取得表单集合
    //if (FAILED(hr))
    //    return;

    CComQIPtr<IHTMLElementCollection> scrpitsCollection;
    htmlDocument_->get_scripts(&scrpitsCollection);
    if (FAILED(hr))
        return;

    long nItemCount = 0;				//取得表单数目
    hr = scrpitsCollection->get_length(&nItemCount);
    if (FAILED(hr))
        return;

    BSTR pstr = SysAllocString(L"");;
    
    hr = scrpitsCollection->toString(&pstr);
    if (FAILED(hr))
        return;

    for (long i = 0; i < nItemCount; i++)
    {
        CComDispatchDriver spDisp;	//取得第 j 项表单域
        hr = scrpitsCollection->item(CComVariant(i), CComVariant(), &spDisp);
        if (FAILED(hr))
            continue;

        CComQIPtr<IHTMLElement> spElement = spDisp;
        if (!spElement)
            break;

        CComBSTR className;
        std::wstring compareStr;
        hr = spElement->get_className(&className);
        if (FAILED(hr))
            continue;
        if (className)
        {
            compareStr = (LPCTSTR)className;
        }
        
    }
    // 未成功
    //DISPID dispid;
    //OLECHAR FAR* funcName = L"click";
    //CComBSTR funNameStr(funcName);
    //hr = scrpitsCollection->GetIDsOfNames(IID_NULL, &funNameStr, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
    //if (FAILED(hr))
    //    return;
}
コード例 #3
0
ファイル: tools.cpp プロジェクト: linjianbjfu/PlayBox
//5386 pin
int PinOrUnpinCmd(int iResIndex)
{
	char szPath[MAX_PATH];
	if(!CLhcImg::GetHomePath(szPath, MAX_PATH))
		return 0;

	string strDirPath = string(szPath);
	if (strDirPath.empty())
		return 0;
	string strFileName = "PlayBox.exe";

	HMODULE hShell32 = ::LoadLibrary("shell32.dll");
	if (!hShell32)
		return 1;

	char szCmd[512];
	int nLen = ::LoadString(hShell32, iResIndex, szCmd, 512);

	::CoInitialize(NULL);
	CComPtr<IShellDispatch> pShell;
	if (FAILED(::CoCreateInstance(CLSID_Shell, NULL, CLSCTX_SERVER, IID_IDispatch, (LPVOID*)&pShell)) || !pShell)
		return 1;

	CComPtr<Folder> pFolder;
	if (FAILED(pShell->NameSpace(CComVariant(strDirPath.c_str()), &pFolder)) || !pFolder)
		return 1;
	CComPtr<FolderItem> pItem;
	if (FAILED(pFolder->ParseName(CComBSTR(strFileName.c_str()), &pItem)) || !pItem)
		return 1;

	CComPtr<FolderItemVerbs> pItemVerbs;
	if (FAILED(pItem->Verbs(&pItemVerbs)) || !pItemVerbs)
		return 1;
	long lCount = 0;
	pItemVerbs->get_Count(&lCount);
	for (long i = 0; i < lCount; i++)
	{
		CComPtr<FolderItemVerb> pItemVerb;
		pItemVerbs->Item(CComVariant(i), &pItemVerb);
		if (pItemVerb)
		{
			CComBSTR bstrName;
			pItemVerb->get_Name(&bstrName);
			if (bstrName == szCmd)
			{
				pItemVerb->DoIt();
				return 0;
			}
		}
	}
	return 0;
}
コード例 #4
0
STDMETHODIMP CFoundationExemplars::TMchOnCreate(IThing* pThing)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState())

	CComPtr<IThing> pThis;
    HRESULT         hr;
    
	if (FAILED(hr = m_pWorld->get_This(&pThis)))
		goto ERROR_ENCOUNTERED;
	
	if (pThis)
	{
		//Create a display and set the TransactionMachine.Display to it
		CComPtr<IThing> pDisplay;
		CComPtr<IVWGeometry> pGeometry;
		CComPtr<IThing> pPrevBtn;
		CComPtr<IThing> pNextBtn;
		CComPtr<IThing> pSelectBtn;
		
		if (FAILED(hr = m_pWorld->CreateInstanceExt(CComBSTR("Display"),
														 CComVariant(CComBSTR("Display")), pThis,
														 &pDisplay)))
		    goto ERROR_ENCOUNTERED;
		
		if (FAILED(hr = pThis->put_ObjectProperty(CComBSTR("Display"), (IObjectProperty*) pDisplay)))
		    goto ERROR_ENCOUNTERED;

		// Add buttons to contents
		if (FAILED(hr = m_pWorld->CreateInstanceExt(CComBSTR("PreviousButton"),
														 CComVariant(CComBSTR("PreviousButton")), pThis,
														 &pPrevBtn)))
		    goto ERROR_ENCOUNTERED;

		if (FAILED(hr = m_pWorld->CreateInstanceExt(CComBSTR("NextButton"),
														 CComVariant(CComBSTR("NextButton")), pThis,
														 &pNextBtn)))
		    goto ERROR_ENCOUNTERED;

		if (FAILED(hr = m_pWorld->CreateInstanceExt(CComBSTR("SelectButton"),
														 CComVariant(CComBSTR("SelectButton")), pThis,
														 &pSelectBtn)))
		    goto ERROR_ENCOUNTERED;
	}

    return S_OK;

ERROR_ENCOUNTERED:
    
    VWTRACE(m_pWorld, "VWFOUND", VWT_ERROR, "CFoundationExemplars::TMchOnCreate  Error %x", hr);

	return hr;
}
コード例 #5
0
HRESULT CAzRole::Copy(CAzRole &srcRole) {

    CAzLogging::Entering(_TEXT("CAzRole::Copy"));

    CComBSTR bstrData;

    HRESULT hr=m_native->Submit(0,CComVariant());

    CAzLogging::Log(hr,_TEXT("Submitting for role"),COLE2T(getName()));

    if (FAILED(hr))
        goto lError1;

    hr=srcRole.m_native->get_Description(&bstrData);

    CAzLogging::Log(hr,_TEXT("Getting Description for role"),COLE2T(getName()));

    if (SUCCEEDED(hr)) {

        hr=m_native->put_Description(bstrData);

        CAzLogging::Log(hr,_TEXT("Setting Description for role"),COLE2T(getName()));

        bstrData.Empty();
    }

    hr=srcRole.m_native->get_ApplicationData(&bstrData);

    CAzLogging::Log(hr,_TEXT("Getting ApplicationData for role"),COLE2T(getName()));

    if (SUCCEEDED(hr)) {

        hr=m_native->put_ApplicationData(bstrData);

        CAzLogging::Log(hr,_TEXT("Setting ApplicationData for role"),COLE2T(getName()));

    }

    hr=CopyUserData(srcRole);

    CAzLogging::Log(hr,_TEXT("CopyUserData for role"),COLE2T(getName()));

    hr=m_native->Submit(0,CComVariant());

    CAzLogging::Log(hr,_TEXT("Submitting for role"),COLE2T(getName()));

lError1:
    CAzLogging::Exiting(_TEXT("CAzRole::Copy"));

    return hr;
}
コード例 #6
0
//----------------------------------------------------------------------------
//  RunModule
HRESULT CMagpieActiveScript::RunModule(
  CMagpieModule* pModule)
{
  CComPtr<IDispatch> pModuleRequireOb(pModule->GetRequire());
  if (!pModuleRequireOb)
  {
    return E_UNEXPECTED;
  }

  CString sFilename, sModuleID;
  pModule->GetID(sModuleID);
  pModule->GetFilename(sFilename);

  m_ScriptEngine->SetScriptState(SCRIPTSTATE_DISCONNECTED);

  // add namespace for module
  IF_FAILED_RET(m_ScriptEngine->AddNamedItem(sModuleID, SCRIPTITEM_CODEONLY));

  // dispatch for module's namespace
  CIDispatchHelper script;
  IF_FAILED_RET(m_ScriptEngine->GetScriptDispatch(sModuleID, &script));

  // create exports object
  CIDispatchHelper scriptGlobal;
  IF_FAILED_RET(m_ScriptEngine->GetScriptDispatch(NULL, &scriptGlobal));
  CComPtr<IDispatch> pModuleExportsOb;
  IF_FAILED_RET(scriptGlobal.CreateObject(L"Object", &pModuleExportsOb));

  // inject CommonJS objects
  script.SetPropertyByRef(L"require", CComVariant(pModuleRequireOb));
  script.SetPropertyByRef(L"module", CComVariant(pModule));
  script.SetPropertyByRef(L"exports", CComVariant(pModuleExportsOb));

  CComVariant vtSalsita;
  HRESULT hr = GetSalsitaObject(&vtSalsita);
  if (SUCCEEDED(hr))
  {
    script.SetPropertyByRef(L"salsita", vtSalsita);
  }

  // now run the module
  m_Application.EnterModule(sModuleID);
  hr = LoadScriptFile(sFilename, sModuleID);
  if (SUCCEEDED(hr))
  {
    m_ScriptEngine->SetScriptState(SCRIPTSTATE_CONNECTED);
  }
  m_Application.ExitModule();

  return S_OK;
}
コード例 #7
0
ファイル: cbUtil.cpp プロジェクト: motor/clock_stimulus
HRESULT CbDevice::EnableSwClocking()
{    
    double maxRate, minRate;

    //
    // It is possible that the hardware will not have the same capabilities as our software clocking
    // In this case we must adjust our assumptions as to what the MIN and MAX sampling rates 
    // should be.
    //

    // Decide the true maximum sampling rate
    if(_maxSampleRate < MAX_SW_SAMPLERATE)
		maxRate = _maxSampleRate;
    else
		maxRate = MAX_SW_SAMPLERATE;

    // Decide the true minimum sampling rate
    if(_minSampleRate > MIN_SW_SAMPLERATE)
		minRate = _minSampleRate;
    else
		minRate = MIN_SW_SAMPLERATE;
    
    RETURN_HRESULT(pSampleRate.SetRange(minRate, maxRate));

	// Set the default rate to 1/5 the max rate
	double defaultRate = int(maxRate/5);
	pSampleRate.SetDefaultValue(defaultRate);

	// Range check the existing sample rate
    if (pSampleRate>maxRate)
	{
        pSampleRate=maxRate;
	}
    else if (pSampleRate<minRate)
	{
        pSampleRate=minRate;
	}

	// If this HW only supports SW Clocking then set the sample rate to the default
    if ( _ClockingType == SOFTWARE )
	{
		pSampleRate = defaultRate;
	}

    pSampleRate=RoundRate(pSampleRate);

    RETURN_HRESULT(_DaqHwInfo->put_MemberValue(L"minsamplerate", CComVariant(minRate)));	
    RETURN_HRESULT(_DaqHwInfo->put_MemberValue(L"maxsamplerate", CComVariant(maxRate)));	
    return S_OK;
}
コード例 #8
0
ファイル: SysStatsApp.cpp プロジェクト: Templier/desktopx
void SysStatsApp::close(SysStatsClientWindow *window)
{
	getShellMenu()->removeSubMenu(window->getContextMenu());
	int pos = windows.find(window);
	if (pos > -1)
	{
		saveTheme();
		IClientModel *pModel;
		models.Item(CComVariant(pos), &pModel);
		models.Remove(CComVariant(pos));
		pModel->Release();
		delete windows.remove(pos);
	}
}
コード例 #9
0
ファイル: cbUtil.cpp プロジェクト: motor/clock_stimulus
HRESULT CbDevice::SetClockSource()
{
    if (_UseSoftwareClock)
    {
        return EnableSwClocking();
    }
    else
    {
        RETURN_HRESULT(_DaqHwInfo->put_MemberValue(L"minsamplerate", CComVariant(_minSampleRate)));	
        RETURN_HRESULT(_DaqHwInfo->put_MemberValue(L"maxsamplerate", CComVariant(_maxSampleRate)));	
        pSampleRate.SetRange(_minSampleRate,_maxSampleRate);
        UpdateRateAndSkew();
    }
    return S_OK;
}
コード例 #10
0
ファイル: IEHelper.cpp プロジェクト: harrysun2006/07_UltraSpy
void EnumEmbeds(IHTMLDocument2 *pIHTMLDocument2)
{
	if(!pIHTMLDocument2) return;

	HRESULT hr;
	USES_CONVERSION;

	CComPtr< IHTMLElementCollection > spEmbedCollection;
	hr = pIHTMLDocument2->get_embeds(&spEmbedCollection);	//取得Embed的集合
	if (FAILED(hr))
	{
		cout << _T("错误: 获取Embed集合IHTMLElementCollection!") << endl;
		return;
	}

	long nEmbedCount = 0;				//取得Embed个数
	hr = spEmbedCollection->get_length(&nEmbedCount);
	if (FAILED(hr))
	{
		cout << _T("错误: 获取Embed集合IHTMLElementCollection的长度!") << endl;
	}

	cout << "Embed对象共: " << nEmbedCount << endl;

	CComBSTR bstrPluginsPage, bstrSrc;
	IDispatch *pDisp = NULL;
	CComQIPtr< IHTMLEmbedElement > spEmbedElement;
	for(long i = 0; i < nEmbedCount; i++)
	{
		hr = spEmbedCollection->item(CComVariant(i), CComVariant(), &pDisp);
		if (FAILED(hr) || !pDisp) continue;

		spEmbedElement = pDisp;
		pDisp->Release();
		
		spEmbedElement->get_pluginspage(&bstrPluginsPage);
		spEmbedElement->get_src(&bstrSrc);
		cout << i + 1
			<< ": pluginspage = " << (bstrPluginsPage ? OLE2CT(bstrPluginsPage) : _T(""))
			<< ", src = " << (bstrSrc ? OLE2CT(bstrSrc) : _T("")) 
			<< endl;
	}
	if (pDisp) 
	{
		pDisp->Release();
		pDisp = NULL;
	}
}
コード例 #11
0
ファイル: isemmmanager.cpp プロジェクト: AlexS2172/IVRM
STDMETHODIMP CISEMMManager::CancelLastMmQuote(VARIANT vtParams)
{
	_EventTypeEnum	Type = _enRequestLastQuote;
	CMMQuoteParams	Request;

	if(CComVariant(vtParams) != vtMissing)
	{
		try
		{
			_ISEMMQuoteParams Params(vtParams);
			Request.m_sSymbol = (char*)_bstr_t(Params->Symbol);
			if(Request.m_sSymbol.length() == 0)
				return Error(L"Invalid symbol name.");

			Request.m_Type = Params->Type;
			Request.m_BidOrAsk = Params->BidOrAsk;
		}
		catch(_com_error& e)
		{
			return e.Error();
		}
	}

	return ((CMMManagerPriceObject*)theISEManager)->RemoveRequest(this, Request, _enRequestLastOption);
}
コード例 #12
0
/**
 * Method: NativeMessaging::tabs_active
 *
 * @param uuid
 *
 * @returns Tab
 */
STDMETHODIMP CNativeMessaging::tabs_active(BSTR uuid, IDispatch *callback, UINT *out_tabId)
{
  HRESULT hr = S_OK;
  CComPtr<ITypeInfo> tabT = nullptr;
  CComPtr<IUnknown>  tabI = nullptr;
  for (;;) {
    BreakOnNull(out_tabId, hr);
    *out_tabId = m_activeTab.id;

    BreakOnNull(callback, hr);

    hr = ::CreateDispTypeInfo(&Tab::Interface, LOCALE_SYSTEM_DEFAULT, &tabT);
    BreakOnFailed(hr);
    BreakOnNull(tabT, hr);

    hr = ::CreateStdDispatch(NULL, &m_activeTab, tabT, &tabI);
    BreakOnFailed(hr);
    BreakOnNull(tabI, hr);

    hr = CComDispatchDriver(callback).Invoke1((DISPID)0, &CComVariant(tabI));
    break;
  }

  if (FAILED(hr))
    logger->error(L"CNativeMessaging::tabs_active failed -> " + logger->parse(hr));

  return hr;
}
コード例 #13
0
HRESULT _AddMapKey(IWorld *pWorld, IAvatarProfile *pProfile, BSTR bstrKey, IThing *pOwner)
{
	HRESULT hr = S_OK;
	IPropertyMap *pMap = NULL;

	hr = CreatePropertyMap(pWorld, &pMap);
	if (FAILED(hr))
		goto CLEAN_UP;

	hr = pProfile->AddKey(bstrKey, CComVariant(pMap), kVarNone, CComVariant(kKeyPublic), CComVariant(pOwner));

CLEAN_UP:
	SAFERELEASE(pMap);

	return hr;
}
コード例 #14
0
ファイル: PickList.cpp プロジェクト: Templier/desktopx
LRESULT PickList<C>::init(HWND hDlg, WORD wId, ICompositeOverlay *overlays, C curVal)
{
    this->hDlg = hDlg;
    this->wId = wId;

    BSTR s;
    short count;
    overlays->Count(&count);

    int index = SendDlgItemMessage(hDlg,wId,CB_ADDSTRING,0,(LPARAM)"(none)");
    SendDlgItemMessage(hDlg,wId,CB_SETITEMDATA,index,(LPARAM)-1);
    if ((*pEquals)(curVal,-1))
        SendDlgItemMessage(hDlg,wId,CB_SETCURSEL,(WPARAM)index,0);

    for (int i=0; i<count; i++)
    {
        IOverlay *overlay;
        overlays->Item(CComVariant(i), &overlay);
        overlay->get_Name(&s);
        index = SendDlgItemMessage(hDlg,wId,CB_ADDSTRING,0,(LPARAM)((char*)_bstr_t(s, false)));
        SendDlgItemMessage(hDlg,wId,CB_SETITEMDATA,index,(LPARAM)i);
        if ((*pEquals)(curVal,i))
            SendDlgItemMessage(hDlg,wId,CB_SETCURSEL,(WPARAM)index,0);
        overlay->Release();
    }

    return 1;
}
コード例 #15
0
ファイル: MyComX.cpp プロジェクト: willmomo/ry2kojima
STDMETHODIMP CMyComX::IsValid(VARIANT_BOOL *ret)
{
	// 現在時間から適当に TRUE/FALSE を戻す
	*ret = CComVariant((GetTickCount() % 2) ? true : false).boolVal;

	return S_OK;
}
コード例 #16
0
bool AddXMLAttribute(CComPtr<IXMLDOMNode> node, const TCHAR * name, const TCHAR * value)
{
	CComQIPtr<IXMLDOMElement> element;
	element = node;
	element->setAttribute(CComBSTR(name), CComVariant(value));
	return true;
}
コード例 #17
0
STDMETHODIMP CFoundationExemplars::TMchNextButton_OnLButtonDown(long hWnd, long x, long y)
{	
	AFX_MANAGE_STATE(AfxGetStaticModuleState())

	CComPtr<IThing> pThis;
	CComPtr<IThing> pContainer;
    HRESULT         hr;

	//Get container (the transaction machine) and call method to update current index
	if (FAILED(hr = m_pWorld->get_This(&pThis)))
		goto ERROR_ENCOUNTERED;

	if (pThis)
    {
		if (FAILED(hr = pThis->get_Container(&pContainer)))
	    	goto ERROR_ENCOUNTERED;
    }
	
	if (pContainer)
	{
		if (FAILED(hr = pContainer->InvokeMethodExt(CComBSTR("UpdateCurrentIndex"),
			CComDISPPARAMS(1, CComVariant(1L)), NULL)))
	    	goto ERROR_ENCOUNTERED;
	}

    return S_OK;

ERROR_ENCOUNTERED:
    VWTRACE(m_pWorld, "VWFOUND", VWT_ERROR, "CFoundationExemplars::TMchPreviousButton_OnLButtonDown  Error %x\n", hr);

	return hr;
}
コード例 #18
0
void CPagePlayers::SectorOrTeamChange(IAGCEvent* pEvent, int iColumn,
  LPCOLESTR pszProperty)
{
  CWaitCursor wait;

  // Get the interesting properties of the event
  CComBSTR bstrName, bstrProperty;
  pEvent->get_SubjectName(&bstrName);
  CComVariant varNewPropertyName;
  pEvent->get_Property(&CComVariant(pszProperty), &varNewPropertyName);
  varNewPropertyName.ChangeType(VT_BSTR);
  bstrProperty = V_BSTR(&varNewPropertyName);

  // Name must not be empty
  _ASSERTE(bstrName.Length());

  // Find the list item with the specified name
  USES_CONVERSION;
  LV_FINDINFO lvfi = {LVFI_STRING, OLE2CT(bstrName)};
  int iIndex = m_listPlayers.FindItem(&lvfi);
  _ASSERTE(iIndex >= 0);

  // Change the sub-item of the list item
  m_listPlayers.SetItemText(iIndex, iColumn,
    bstrProperty.Length() ? OLE2CT(bstrProperty) : TEXT(""));
}
コード例 #19
0
void CPagePlayers::TeamInfoChange(IAGCEvent* pEvent)
{
  CWaitCursor wait;

  // Get the interesting properties of the event
  CComBSTR bstrTeam, bstrTeamNew;
  pEvent->get_SubjectName(&bstrTeam);
  CComVariant varTeamNew;
  pEvent->get_Property(&CComVariant(L"NewTeamName"), &varTeamNew);
  varTeamNew.ChangeType(VT_BSTR);
  CString strTeam(bstrTeam), strTeamNew(V_BSTR(&varTeamNew));

  // Name must not be empty
  _ASSERTE(!strTeam.IsEmpty());

  // Loop through each item in the list
  int cPlayers = m_listPlayers.GetItemCount();
  for (int i = 0; i < cPlayers; ++i)
  {
    // Get the list item's team name
    CString str(m_listPlayers.GetItemText(i, c_iColumnTeam));

    // Change the team name of this item, if it has the old team name
    if (str == strTeam)
      m_listPlayers.SetItemText(i, c_iColumnTeam, strTeamNew);
  }
}
コード例 #20
0
STDMETHODIMP CompositeOverlayImpl<B>::Item(VARIANT index, IOverlay **pRet)
{
	BSTR bstr;
	short count = 0;

	if (SUCCEEDED(SysStatsUtils::VariantToBSTR(&index, &bstr)))
	{
		Count(&count);
		for (int i=0; i < count; i++)
		{
			IOverlay *pOverlay;
			ArrayPtrVariant<IOverlay, SimpleOverlayImpl2<B> >::Item(CComVariant(i), &pOverlay);
			BSTR name;
			pOverlay->get_Name(&name);
			if (wcscmp(name, bstr) == 0)
			{
				*pRet = pOverlay;
				::SysFreeString(name);
				return S_OK;
			}
			::SysFreeString(name);
			pOverlay->Release();
		}

		return S_OK;
	}
	else
		return ArrayPtrVariant<IOverlay, SimpleOverlayImpl2<B> >::Item(index, pRet);

	/*return E_INVALIDARG;*/
}
コード例 #21
0
ファイル: TestSetupEntity.cpp プロジェクト: Ferrere/busmaster
/******************************************************************************
Function Name  :  FormatDOMDocument
Input(s)       :  MSXML2::IXMLDOMDocumentPtr pDoc
                  CString& omstrFilePath
Output         :  bool
Functionality  :  Formats the pDoc Pointer into File omStrFilePath
Member of      :  CTestSetupEntity
Friend of      :  -
Author(s)      :  Venkatanarayana Makam
Date Created   :  06/04/2011
Modifications  :
******************************************************************************/
BOOL CTestSetupEntity::FormatDOMDocument(MSXML2::IXMLDOMDocumentPtr pDoc, CString& omstrFilePath)
{
    //Referance Taken From Msdn
    MSXML2::ISAXXMLReaderPtr pSaxXmlReader = NULL;
    pSaxXmlReader.CreateInstance(L"Msxml2.SAXXMLReader");
    CComPtr<IStream> pStream;
    DWORD grfMode = STGM_WRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE;

    //W4 Removal
    if(SHCreateStreamOnFile ((LPCTSTR)omstrFilePath, grfMode, &pStream) == S_OK)
    {
        MSXML2::IMXWriterPtr pImxWriter;
        pImxWriter.CreateInstance (L"Msxml2.MXXMLWriter");
        pImxWriter->put_output (CComVariant(pStream));
        pSaxXmlReader->putContentHandler((MSXML2::ISAXContentHandlerPtr)pImxWriter);
        pSaxXmlReader->putErrorHandler((MSXML2::ISAXErrorHandlerPtr)pImxWriter);
        pSaxXmlReader->putDTDHandler((MSXML2::ISAXDTDHandlerPtr)pImxWriter);
        pImxWriter->put_byteOrderMark(VARIANT_TRUE);
        pImxWriter->put_indent(VARIANT_TRUE);
        //W4 Removal
        pSaxXmlReader->parse((_variant_t)(pDoc.GetInterfacePtr()));
        pImxWriter->flush ();
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}
コード例 #22
0
ファイル: SysStatsApp.cpp プロジェクト: Templier/desktopx
void SysStatsApp::save()
{
	BSTR path;
	appConfig->CanonicalPath(INI, &path);
	_bstr_t path_t = path;
	char *appConfigFile = path_t;

	// Clear the skin file of all the crap
	int fd = _open(appConfigFile, _O_CREAT | _O_TRUNC | O_RDWR, _S_IWRITE);
	_close(fd);

	char val[32];
	WritePrivateProfileString(GENERAL, CLIENT_COUNT_PROPERTY, itoa(windows.count(), val, 10), appConfigFile);

	char name[64];
	strcpy(name, CLIENT_PREFIX);
	int offset = strlen(name);
	for (int i=0; i<windows.count(); i++)
	{
		itoa(i, name+offset, 10);
		windows[i]->save(appConfigFile, name);
		IClientModel *pModel;
		models.Item(CComVariant(i), &pModel);
		pModel->Save(/* not interactive */ false);
		BSTR cf;
		pModel->get_ConfigFile(&cf);
		BSTR ncf;
		appConfig->NormalizePath(cf, &ncf);
		::SysFreeString(cf);
		WritePrivateProfileString(name, CONFIG_FILE_PROPERTY, _bstr_t(ncf, false), appConfigFile);
		pModel->Release();
	}
}
コード例 #23
0
ファイル: XmlToolsImpl.cpp プロジェクト: stephenwelsh/msiext
CA_API UINT __stdcall Xml_DeleteNodes(MSIHANDLE hInstall)
{
    MSI_EXCEPTION_HANDLER_PROLOG;
    MsiInstall msiInstall(hInstall);

    std::wstring filename = msiInstall.GetProperty(L"XML_FILENAME");
    AppSecInc::Xml::XmlDocument doc;
    doc.Load(filename);

    std::wstring xpath = msiInstall.GetProperty(L"XML_XPATH");
    MSXML2::IXMLDOMNodeListPtr nodes = doc.FindNodes(xpath);
    int count = 0;
    if (NULL != nodes)
    {
        MSXML2::IXMLDOMNodePtr node = NULL;
        while (NULL != (node = nodes->nextNode()))
        {
            node->parentNode->removeChild(node);
            count++;
        }
    }

    if (count > 0)
    {
        CHECK_HR(doc->save(CComVariant(filename.c_str())),
                 L"Error saving '" << filename << L"'");
    }

    msiInstall.SetProperty(L"XML_DELETED", AppSecInc::StringUtils::toWString(count));
    MSI_EXCEPTION_HANDLER_EPILOG;
    return ERROR_SUCCESS;
}
コード例 #24
0
ファイル: BFXmlPser.cpp プロジェクト: AmesianX/BinClone
BOOL CBFXmlDoc::loadXML(LPCTSTR xmlFile)
{
    if (StrCmp(xmlFile, _T("")) == 0)
        return FALSE;

    m_xmlFile = xmlFile;
    
    // In MSDN, search for "White Space Handling"
    // In order to have a "half-preserved" property.
    // Need to set it to FALSE before loading the doc.
    // Then set it back to TRUE after loading.
    if (!setPreserveWhiteSpace(FALSE))
        return FALSE;

    VARIANT_BOOL vb;
	HRESULT hr = m_pDoc->load(CComVariant(m_xmlFile), &vb);
    if (FAILED(hr) || vb == VARIANT_FALSE)
		return FALSE;

    //CComPtr<IXMLDOMParseError> pErrObj;
    //m_pDoc->get_parseError(&pErrObj);
    //BSTR reason;
    //pErrObj->get_reason(&reason);

    if (!setPreserveWhiteSpace(TRUE))
        return FALSE;

    return TRUE;
}
コード例 #25
0
void ValueSetterDialog::resetCombos(long meterIndex)
{
	xml = L"";
	BSTR xPath = L"";

	if (meterIndex >= 0)
	{
		IMeter *pMeter;
		meters->Item(CComVariant(meterIndex), &pMeter);
		IMetaData *pMetaData = 0;
		pMeter->QueryInterface(_uuidof(IMetaData), (void**)&pMetaData);
		if (pMetaData)
		{
			BSTR xmlString;
			if (SUCCEEDED(pMetaData->GetMetaData(&xmlString)))
			{
				xPath = L"//valueset[@id=//method[@name=\"PutValue\"]/arg[@name=\"selector\"]/valuesetref/@idref]";
				xml = xmlString;
			}
			pMetaData->Release();
		}
	}

	BSTR s;

	pController->get_Selector(&s);
	_bstr_t _s(s);
	selectorList.init(m_hWnd, IDC_COMBO_SELECTOR, xml, xPath, _s);

	resetValueCombo(_s);
}
コード例 #26
0
void CPhotoManager::SetElemStyle(CComPtr<IHTMLElement> spElem, long lElemWidth, long lElemHeight)
{
	if (spElem == NULL)
		return;

	HRESULT hr = S_OK;
	CComPtr<IHTMLStyle> spStyle;
	hr = spElem->get_style(&spStyle);
	if (spStyle == NULL)
		return;
		
//j Doesn't work yet	hr = spStyle->put_textAlign(CComBSTR("center"));
//j Doesn't work yet	hr = spStyle->put_verticalAlign(CComVariant(CComBSTR("center")));
	hr = spStyle->put_width(CComVariant(lElemWidth));
	hr = spStyle->put_height(CComVariant(lElemHeight));
}
コード例 #27
0
bool CreateXMLNode(CComPtr<IXMLDOMDocument> doc, CComPtr<IXMLDOMNode> node, const TCHAR *nodeName, IXMLDOMNode ** newNode)
{
	CComPtr <IXMLDOMNode> sceneNode;
	doc->createNode(CComVariant(NODE_ELEMENT), CComBSTR(nodeName), NULL, &sceneNode);
	node->appendChild(sceneNode, newNode);
	return true;
}
コード例 #28
0
ファイル: DlgSettingsMain.cpp プロジェクト: DWmodem/console
LRESULT DlgSettingsMain::OnCloseCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
	SettingsDlgsMap::iterator it = m_settingsDlgMap.begin();
	for (; it != m_settingsDlgMap.end(); ++it)
	{
		if ((it->second)->SendMessage(WM_COMMAND, wID, 0) != 0)
		{
			m_treeCtrl.Select(it->first, TVGN_CARET);
			return -1;
		}
	}

	for (it = m_settingsDlgMap.begin(); it != m_settingsDlgMap.end(); ++it)
	{
		it->second->DestroyWindow();
	}

	if (wID == IDOK)
	{
		if (m_checkUserDataDir.IsWindowEnabled())
		{
			g_settingsHandler->SetUserDataDir((m_checkUserDataDir.GetCheck() == 1) ? SettingsHandler::dirTypeUser : SettingsHandler::dirTypeExe);
		}
		m_pSettingsDocument->save(CComVariant(g_settingsHandler->GetSettingsFileName().c_str()));
	}

	EndDialog(wID);
	return 0;
}
コード例 #29
0
HRESULT DatenBasisObjekt::DelPBDDataIdent (HPROJECT hPr, PBDDATA *pData)
{
	TX_ASSERT(IsTRiASDBBased());

// Tabelle liegt in einer Datenquelle 
	if (HACTPROJECT != hPr) {
	ErrCode RC = DB(GetIdentDBHandle (pData -> pbdCode, hPr)).DelPBDDataIdent (pData);

		if (EC_OKAY != RC)
			return HRESULT_FROM_ERRCODE(RC);

	// Notifikation rumschicken
		DEXN_FeatureSetModified(pData -> pbdCode);
	} 
	else {
	// KurzText muß gegeben sein
		TX_ASSERT(pData -> pbdKTextLen > 0 && NULL != pData -> pbdKText);

	// übergreifende Objektmenge löschen
	WTRiASObjectsCollection ObjsDefs;

		RETURN_FAILED_HRESULT(m_Prj -> get_ObjectsDefs (ObjsDefs.ppi()));
		RETURN_FAILED_HRESULT(ObjsDefs -> Remove (CComVariant(pData -> pbdKText)));
	}
	return S_OK;
}
コード例 #30
0
STDMETHODIMP CompositeOverlayImpl<B>::HitTest(/*[in]*/ short X, /*[in]*/ short Y, /*[out, retval]*/ VARIANT_BOOL *retVal)
{
	if (retVal == NULL)
		return E_POINTER;

	*retVal = false;

	short count = 0;
	Count(&count);

	for (int i=count-1; i>=0 && !(*retVal); i--)
	{
		IOverlay *pItem;
		Item(CComVariant(i), &pItem);
		VARIANT_BOOL vis;
		pItem->get_Visible(&vis);
		if (vis)
		{
			ISimpleOverlay2 *pISO2 = NULL;
			HRESULT hr = pItem->QueryInterface(__uuidof(ISimpleOverlay2), (void **)&pISO2);
			if (SUCCEEDED(hr))
			{
				pISO2->HitTest(X, Y, retVal);
				pISO2->Release();
			}
		}
		pItem->Release();
	}

	return S_OK;
}