//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1998. // // File: ilangres.cxx // // Contents: CLanguageResourceInterface - an object to expose ICiCLangRes // // Classes: CLanguageResourceInterface // // History: 2-14-97 mohamedn created // //---------------------------------------------------------------------------- #include #pragma hdrstop #include //+--------------------------------------------------------------------------- // // Member: CLanguageResourceInterface::QueryInterface // // Synopsis: Supports IID_IUnknown, IID_ICiCLangRes // // History: 2-14-97 mohamedn ICiCLangRes // //---------------------------------------------------------------------------- STDMETHODIMP CLanguageResourceInterface::QueryInterface( REFIID riid, void **ppvObject) { Win4Assert( 0 != ppvObject ); if ( IID_ICiCLangRes == riid ) *ppvObject = (void *)((ICiCLangRes *)this); else if ( IID_IUnknown == riid ) *ppvObject = (void *)((IUnknown *) (ICiCLangRes *)this); else { *ppvObject = 0; return E_NOINTERFACE; } AddRef(); return S_OK; } //QueryInterface //+--------------------------------------------------------------------------- // // Member: CLanguageResourceInterface::AddRef // // History: 2-14-97 mohamedn ICiCLangRes // //---------------------------------------------------------------------------- STDMETHODIMP_(ULONG) CLanguageResourceInterface::AddRef() { return InterlockedIncrement(&_refCount); } //AddRef //+--------------------------------------------------------------------------- // // Member: CLanguageResourceInterface::Release // // History: 2-14-97 mohamedn ICiCLangRes // //---------------------------------------------------------------------------- STDMETHODIMP_(ULONG) CLanguageResourceInterface::Release() { Win4Assert( _refCount > 0 ); LONG refCount = InterlockedDecrement(&_refCount); if ( refCount <= 0 ) delete this; return (ULONG) refCount; } //Release