HI ! I am developing one application in VC++6.0 using WMI, which displays all the products names which r installed on the remote machine. When I run this program it always displays the products which r installed on the local machine ! Please give the Solution for this problem!

Code:
	IWbemLocator *pIWbemLocator = NULL;
	IWbemServices *pWbemServices = NULL;
	IEnumWbemClassObject *pEnumObject  = NULL;

	BSTR bstrNamespace = (L"\\\\remotemachinename\\root\\CIMV2");

	HRESULT hRes = CoCreateInstance (
            CLSID_WbemAdministrativeLocator,
            NULL ,
            CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER , 
            IID_IUnknown ,
            ( void ** ) &pIWbemLocator);

	BSTR bstrUser = (L"DOMAINNAME\\UserNameOnRemoteMachine");
	BSTR bstrPWD = (L"password");

	if (SUCCEEDED(hRes))
	{
		hRes = pIWbemLocator->ConnectServer(
                bstrNamespace,  // Namespace
                bstrUser, 	// Userid
                bstrPWD,     	// PW
                L"MS_409",      // Locale
                0,              // flags
                NULL,		// Authority
                NULL,           // Context
                &pWbemServices);
	}
	else
	{
		AfxMessageBox("Unable to Connect!");
		return;
	}

	BSTR strQuery = (L"Select * from Win32_Product");
	BSTR strQL = (L"WQL");

	hRes = pWbemServices->ExecQuery(strQL, strQuery, WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumObject);
	
	ULONG uCount = 1, uReturned;
	IWbemClassObject * pClassObject = NULL;

	hRes = pEnumObject->Reset();
	
	while ( 1 )
	{
		pClassObject = NULL;

		hRes = pEnumObject->Next(WBEM_INFINITE,uCount, &pClassObject, &uReturned);

		if( FAILED(hRes) || ( hRes == WBEM_S_FALSE ) )
			break;
		
		VARIANT v;
		BSTR strClassProp = SysAllocString(L"Name"); 
		hRes = pClassObject->Get(strClassProp, 0, &v, 0, 0);
		SysFreeString(strClassProp);
		
		_bstr_t bstrPath = &v;  

		char* strName = (char*)bstrPath;
		
		
		if( SUCCEEDED(hRes) )
			MessageBox(strName);
		else
			MessageBox("Error in getting object");
		
		VariantClear( &v );

		pClassObject->Release();
	}
	
	pIWbemLocator->Release();
	pWbemServices->Release();
	pEnumObject->Release();