1/* -*- Mode: C; tab-width: 4 -*- 2 * 3 * Copyright (c) 2003-2004 Apple Computer, Inc. All rights reserved. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18#ifndef __CLASS_FACTORY__ 19#define __CLASS_FACTORY__ 20 21#include "StdAfx.h" 22 23//=========================================================================================================================== 24// ClassFactory 25//=========================================================================================================================== 26 27class ClassFactory : public IClassFactory 28{ 29protected: 30 31DWORD mRefCount; 32CLSID mCLSIDObject; 33 34public: 35 36ClassFactory( CLSID inCLSID ); 37~ClassFactory( void ); 38 39// IUnknown methods 40 41STDMETHODIMP QueryInterface( REFIID inID, LPVOID *outResult ); 42STDMETHODIMP_( DWORD ) AddRef( void ); 43STDMETHODIMP_( DWORD ) Release( void ); 44 45// IClassFactory methods 46 47STDMETHODIMP CreateInstance( LPUNKNOWN inUnknown, REFIID inID, LPVOID *outObject ); 48STDMETHODIMP LockServer( BOOL inLock ); 49}; 50 51#endif // __CLASS_FACTORY__ 52