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


C++ IXMLDOMElementPtr::put_dataType方法代码示例

本文整理汇总了C++中msxml2::IXMLDOMElementPtr::put_dataType方法的典型用法代码示例。如果您正苦于以下问题:C++ IXMLDOMElementPtr::put_dataType方法的具体用法?C++ IXMLDOMElementPtr::put_dataType怎么用?C++ IXMLDOMElementPtr::put_dataType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在msxml2::IXMLDOMElementPtr的用法示例。


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

示例1: SUCCEEDED

	//-------------------------------------------------------------------------
	// Function Name    :EncodeBase64
	// Parameter(s)     :LPBYTE *pBuf	The binary buffer
	//					:ULONG ulSize	size
	// Return           :CString		the result
	// Memo             :encoding the binary buffer into Base64 string
	//-------------------------------------------------------------------------
	CString CXml::Base64Encode(LPBYTE pBuf, ULONG ulSize)
	{
		ASSERT( m_pDoc != NULL );
		ASSERT( pBuf != NULL );
		
		CString strRet = _T("");
		try
		{
			MSXML2::IXMLDOMElementPtr pElement = NULL;
			pElement = m_pDoc->createElement( _bstr_t(_T("Base64")) );
			ASSERT( pElement != NULL );

			HRESULT hr = S_OK;
			hr = pElement->put_dataType( _bstr_t(_T("bin.base64")) );
			ASSERT( SUCCEEDED(hr) );

			SAFEARRAY * pAry = SafeArrayCreateVector( VT_UI1, 0L, ulSize);
			::memcpy( pAry->pvData, pBuf, ulSize);

			VARIANT var;
			VariantInit(&var);
			var.parray = pAry;
			var.vt = VT_ARRAY | VT_UI1;
			pElement->nodeTypedValue = var;

			BSTR bstr = NULL;
			hr = pElement->get_text( &bstr );
			ASSERT( SUCCEEDED(hr) );	
			strRet = (LPCTSTR)_bstr_t( bstr, true);

			if( bstr != NULL )
			{
				SysFreeString(bstr);
				bstr = NULL;
			}

			RELEASE_PTR(pElement);
		}
		catch ( _com_error e )
		{
			TRACE( _T("CXml::Base64Encode failed:%s\n"), e.ErrorMessage());
			ASSERT( FALSE );
		}

		return strRet;
	}
开发者ID:anonymous1999,项目名称:BooguNote,代码行数:53,代码来源:Xml.cpp

示例2: SafeArrayGetUBound

//-------------------------------------------------------------------------
// Function Name    :Base64Decode
// Parameter(s)     :LPCTSTR pszIn	Base64编码
//					:LPBYTE pBuf	缓冲区首地址
//					:ULONG &ulSize	缓冲区大小
// Return           :BOOL
// Memo             :将Base64编码解码为二进制形式 
//					注意!此函数的缓冲区需要在函数调用完后删除
//-------------------------------------------------------------------------
BOOL CXml::Base64Decode(LPCTSTR pszIn, LPBYTE& pBuf, LONG& lSize)
{
	ASSERT(m_pDoc != NULL);
	
	try
	{
		MSXML2::IXMLDOMElementPtr pElement = NULL;
		pElement = m_pDoc->createElement(_bstr_t(_T("Base64")));
		ASSERT(pElement != NULL);

		HRESULT hr = S_OK;
		hr = pElement->put_dataType(_bstr_t(_T("bin.base64")));
		ASSERT(SUCCEEDED(hr));

		hr = pElement->put_text(CComBSTR(pszIn));
		ASSERT(SUCCEEDED(hr));

        hr = SafeArrayGetUBound(pElement->nodeTypedValue.parray, 1, &lSize);
		ASSERT(SUCCEEDED(hr));
		lSize ++;

		pBuf = new BYTE[lSize];
		memset(pBuf, 0, lSize);

		memcpy(pBuf, LPVOID(pElement->nodeTypedValue.parray->pvData), lSize);	

		RELEASE_PTR(pElement);
	}
	catch (_com_error e)
	{
		TRACE(_T("CXml::Base64Decode 发生异常:%s\n"), e.ErrorMessage());
		ASSERT(FALSE);
		return FALSE;
	}
	
	return TRUE;
}
开发者ID:KnowNo,项目名称:test-code-backup,代码行数:46,代码来源:Xml.cpp


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