Click here to Skip to main content
16,005,178 members
Home / Discussions / COM
   

COM

 
QuestionHow to use IHTMLEditHost in combination with CHtmlView Pin
Juergen Woelke15-Aug-01 1:46
Juergen Woelke15-Aug-01 1:46 
GeneralHelp with ITypeInfo Pin
Aaron Schaefer13-Aug-01 11:21
Aaron Schaefer13-Aug-01 11:21 
GeneralRe: Help with ITypeInfo Pin
Aaron Schaefer13-Aug-01 11:40
Aaron Schaefer13-Aug-01 11:40 
GeneralWM_CREATE, CWindow and HWND Pin
13-Aug-01 7:26
suss13-Aug-01 7:26 
GeneralRe: WM_CREATE, CWindow and HWND Pin
16-Aug-01 5:52
suss16-Aug-01 5:52 
GeneralShell Extentions / EXPLORER Extentions Pin
12-Aug-01 19:54
suss12-Aug-01 19:54 
GeneralVARIANT data type?! Pin
11-Aug-01 21:28
suss11-Aug-01 21:28 
GeneralRe: VARIANT data type?! Pin
Rashid Thadha12-Aug-01 23:08
Rashid Thadha12-Aug-01 23:08 
use this variant crack.. This is gives you an idea of how to use a variant

// CrackStrVariant() taken from the CCrack::strVariant method found in the DAOVIEW sample
CString CLeftView::CrackStrVariant(const COleVariant& var)
{
    CString strRet;
    strRet = _T("<Unknown>");
    switch(var.vt)
	{
		case VT_EMPTY:
		case VT_NULL:
			strRet = _T("NULL");
			break;
		case VT_I2:
			strRet.Format(_T("%hd"), V_I2(&var));
			break;
		case VT_I4:
			strRet.Format(_T("%d"),V_I4(&var));
			break;
		case VT_R4:
			strRet.Format(_T("%e"), (double)V_R4(&var));
			break;
		case VT_R8:
			strRet.Format(_T("%e"), V_R8(&var));
			break;
		case VT_CY:
			strRet = COleCurrency(var).Format();
			break;
		case VT_DATE:
			strRet = COleDateTime(var).Format(_T("%c"));
			break;
		case VT_BSTR:
			strRet = V_BSTR(&var);
			break;
		case VT_DISPATCH:
			strRet = _T("VT_DISPATCH");
			break;
		case VT_ERROR:
			strRet = _T("VT_ERROR");
			break;
		case VT_BOOL:
			return ( V_BOOL(&var) ? _T("TRUE") : _T("FALSE"));
		case VT_VARIANT:
			strRet = _T("VT_VARIANT");
			break;
		case VT_UNKNOWN:
			strRet = _T("VT_UNKNOWN");
			break;
		case VT_I1:
			strRet = _T("VT_I1");
			break;
		case VT_UI1:
			strRet.Format(_T("0x%02hX"), (unsigned short)V_UI1(&var));
			break;
		case VT_UI2:
			strRet = _T("VT_UI2");
			break;
		case VT_UI4:
			strRet = _T("VT_UI4");
			break;
		case VT_I8:
			strRet = _T("VT_I8");
			break;
		case VT_UI8:
			strRet = _T("VT_UI8");
			break;
		case VT_INT:
			strRet = _T("VT_INT");
			break;
		case VT_UINT:
			strRet = _T("VT_UINT");
			break;
		case VT_VOID:
			strRet = _T("VT_VOID");
			break;
		case VT_HRESULT:
			strRet = _T("VT_HRESULT");
			break;
		case VT_PTR:
			strRet = _T("VT_PTR");
			break;
		case VT_SAFEARRAY:
			strRet = _T("VT_SAFEARRAY");
			break;
		case VT_CARRAY:
			strRet = _T("VT_CARRAY");
			break;
		case VT_USERDEFINED:
			strRet = _T("VT_USERDEFINED");
			break;
		case VT_LPSTR:
			strRet = _T("VT_LPSTR");
			break;
		case VT_LPWSTR:
			strRet = _T("VT_LPWSTR");
			break;
		case VT_FILETIME:
			strRet = _T("VT_FILETIME");
			break;
		case VT_BLOB:
			strRet = _T("VT_BLOB");
			break;
		case VT_STREAM:
			strRet = _T("VT_STREAM");
			break;
		case VT_STORAGE:
			strRet = _T("VT_STORAGE");
			break;
		case VT_STREAMED_OBJECT:
			strRet = _T("VT_STREAMED_OBJECT");
			break;
		case VT_STORED_OBJECT:
			strRet = _T("VT_STORED_OBJECT");
			break;
		case VT_BLOB_OBJECT:
			strRet = _T("VT_BLOB_OBJECT");
			break;
		case VT_CF:
			strRet = _T("VT_CF");
			break;
		case VT_CLSID:
			strRet = _T("VT_CLSID");
			break;
    }
    
	WORD vt = var.vt;
    if(vt & VT_ARRAY)
	{
        vt = vt & ~VT_ARRAY;
        strRet = _T("Array of ");
    }
    
	if(vt & VT_BYREF)
	{
        vt = vt & ~VT_BYREF;
        strRet += _T("Pointer to ");
    }
    
	if(vt != var.vt)
	{
        switch(vt)
		{
			case VT_EMPTY:
				strRet += _T("VT_EMPTY");
				break;
			case VT_NULL:
				strRet += _T("VT_NULL");
				break;
			case VT_I2:
				strRet += _T("VT_I2");
				break;
			case VT_I4:
				strRet += _T("VT_I4");
				break;
			case VT_R4:
				strRet += _T("VT_R4");
				break;
			case VT_R8:
				strRet += _T("VT_R8");
				break;
			case VT_CY:
				strRet += _T("VT_CY");
				break;
			case VT_DATE:
				strRet += _T("VT_DATE");
				break;
			case VT_BSTR:
				strRet += _T("VT_BSTR");
				break;
			case VT_DISPATCH:
				strRet += _T("VT_DISPATCH");
				break;
			case VT_ERROR:
				strRet += _T("VT_ERROR");
				break;
			case VT_BOOL:
				strRet += _T("VT_BOOL");
				break;
			case VT_VARIANT:
				strRet += _T("VT_VARIANT");
				break;
			case VT_UNKNOWN:
				strRet += _T("VT_UNKNOWN");
				break;
			case VT_I1:
				strRet += _T("VT_I1");
				break;
			case VT_UI1:
				strRet += _T("VT_UI1");
				break;
			case VT_UI2:
				strRet += _T("VT_UI2");
				break;
			case VT_UI4:
				strRet += _T("VT_UI4");
				break;
			case VT_I8:
				strRet += _T("VT_I8");
				break;
			case VT_UI8:
				strRet += _T("VT_UI8");
				break;
			case VT_INT:
				strRet += _T("VT_INT");
				break;
			case VT_UINT:
				strRet += _T("VT_UINT");
				break;
			case VT_VOID:
				strRet += _T("VT_VOID");
				break;
			case VT_HRESULT:
				strRet += _T("VT_HRESULT");
				break;
			case VT_PTR:
				strRet += _T("VT_PTR");
				break;
			case VT_SAFEARRAY:
				strRet += _T("VT_SAFEARRAY");
				break;
			case VT_CARRAY:
				strRet += _T("VT_CARRAY");
				break;
			case VT_USERDEFINED:
				strRet += _T("VT_USERDEFINED");
				break;
			case VT_LPSTR:
				strRet += _T("VT_LPSTR");
				break;
			case VT_LPWSTR:
				strRet += _T("VT_LPWSTR");
				break;
			case VT_FILETIME:
				strRet += _T("VT_FILETIME");
				break;
			case VT_BLOB:
				strRet += _T("VT_BLOB");
				break;
			case VT_STREAM:
				strRet += _T("VT_STREAM");
				break;
			case VT_STORAGE:
				strRet += _T("VT_STORAGE");
				break;
			case VT_STREAMED_OBJECT:
				strRet += _T("VT_STREAMED_OBJECT");
				break;
			case VT_STORED_OBJECT:
				strRet += _T("VT_STORED_OBJECT");
				break;
			case VT_BLOB_OBJECT:
				strRet += _T("VT_BLOB_OBJECT");
				break;
			case VT_CF:
				strRet += _T("VT_CF");
				break;
			case VT_CLSID:
				strRet += _T("VT_CLSID");
				break;
        }
    }
    
	return strRet;
}

GeneralRe: VARIANT data type?! Pin
20-Aug-01 1:06
suss20-Aug-01 1:06 
GeneralHELP!!! Advise() failes when called remotely Pin
10-Aug-01 5:45
suss10-Aug-01 5:45 
GeneralRe: HELP!!! Advise() failes when called remotely Pin
Mike Player10-Aug-01 6:14
Mike Player10-Aug-01 6:14 
GeneralRe: HELP!!! Advise() failes when called remotely Pin
Rashid Thadha10-Aug-01 6:34
Rashid Thadha10-Aug-01 6:34 
GeneralConverting types Pin
8-Aug-01 20:11
suss8-Aug-01 20:11 
GeneralEvents in ASP Pin
Member 169778-Aug-01 19:47
Member 169778-Aug-01 19:47 
GeneralPerformance: Smart pointers vs CComPtr, IDispatch vs IUnknown Pin
Joe Hastings8-Aug-01 11:43
Joe Hastings8-Aug-01 11:43 
GeneralCOM Pin
8-Aug-01 0:14
suss8-Aug-01 0:14 
GeneralCalling the 2nd + method Pin
Brad Bruce7-Aug-01 8:39
Brad Bruce7-Aug-01 8:39 
GeneralATL Dialog based control wizard Pin
7-Aug-01 7:24
suss7-Aug-01 7:24 
GeneralRe: ATL Dialog based control wizard Pin
Aaron Schaefer7-Aug-01 8:41
Aaron Schaefer7-Aug-01 8:41 
QuestionMFC ASSERT called by IE, need to reboot? Pin
Joe Hastings7-Aug-01 3:25
Joe Hastings7-Aug-01 3:25 
Generalput <map> in dispparams Pin
parag7-Aug-01 3:04
parag7-Aug-01 3:04 
GeneralUsing ActiveX VB dll in VC Pin
6-Aug-01 20:06
suss6-Aug-01 20:06 
GeneralAutomating Visual C++ Project Creation Pin
Steve Thresher6-Aug-01 0:19
Steve Thresher6-Aug-01 0:19 
GeneralExtension of the IE5 context-menu Pin
Yks5-Aug-01 18:59
Yks5-Aug-01 18:59 
GeneralRe: Extension of the IE5 context-menu Pin
Todd Smith5-Aug-01 19:32
Todd Smith5-Aug-01 19:32 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.