UNKNOWN.CPP
//******************************************************************************************* 
// 
// Filename : Unknown.cpp 
// 
//Customized CUnknown implmentations 
// 
// Copyright 1994 - 1998 Microsoft Corporation. All rights reserved 
// 
//******************************************************************************************* 
 
#include "Pch.H" 
 
#include "ThisDll.H" 
 
#include "Unknown.H" 
 
CUnknown::~CUnknown() 
{ 
} 
 
 
HRESULT CUnknown::QIHelper(REFIID riid, LPVOID *ppvObj, const IID *apiid[], 
LPUNKNOWN aobj[]) 
{ 
*ppvObj = NULL; 
 
LPUNKNOWN pObj; 
  
if (riid == IID_IUnknown) 
{ 
pObj = aobj[0];  
} 
else 
{ 
for (int i=0; ; ++i) 
{ 
if (!apiid[i]) 
{ 
   return(E_NOINTERFACE); 
} 
 
if (*apiid[i] == riid) 
{ 
pObj = aobj[i]; 
break; 
} 
} 
} 
 
pObj->AddRef(); 
*ppvObj = pObj; 
 
return(NOERROR); 
} 
 
 
ULONG CUnknown::AddRefHelper() 
{ 
return(m_cRef.AddRef()); 
} 
 
 
ULONG CUnknown::ReleaseHelper() 
{ 
if (!m_cRef.Release()) 
{ 
   delete this; 
return(0); 
} 
 
return(m_cRef.GetRef()); 
}