- Code/Resource
- Windows Develop
- Linux-Unix program
- Internet-Socket-Network
- Web Server
- Browser Client
- Ftp Server
- Ftp Client
- Browser Plugins
- Proxy Server
- Email Server
- Email Client
- WEB Mail
- Firewall-Security
- Telnet Server
- Telnet Client
- ICQ-IM-Chat
- Search Engine
- Sniffer Package capture
- Remote Control
- xml-soap-webservice
- P2P
- WEB(ASP,PHP,...)
- TCP/IP Stack
- SNMP
- Grid Computing
- SilverLight
- DNS
- Cluster Service
- Network Security
- Communication-Mobile
- Game Program
- Editor
- Multimedia program
- Graph program
- Compiler program
- Compress-Decompress algrithms
- Crypt_Decrypt algrithms
- Mathimatics-Numerical algorithms
- MultiLanguage
- Disk/Storage
- Java Develop
- assembly language
- Applications
- Other systems
- Database system
- Embeded-SCM Develop
- FlashMX/Flex
- source in ebook
- Delphi VCL
- OS Develop
- MiddleWare
- MPI
- MacOS develop
- LabView
- ELanguage
- Software/Tools
- E-Books
- Artical/Document
STDFACT.CPP
Package: MSDN_VC98.zip [view]
Upload User: bangxh
Upload Date: 2007-01-31
Package Size: 42235k
Code Size: 2k
Category:
Windows Develop
Development Platform:
Visual C++
- /*++
- Copyright (c) 1996 Microsoft Corporation
- Module Name:
- StdFact.cpp
- Abstract:
- Standard IClassFactory implementation
- Author:
- Environment:
- User mode
- Revision History :
- --*/
- #include "adssmp.h"
- STDMETHODIMP
- StdClassFactory::QueryInterface(REFIID riid, LPVOID FAR* ppv)
- {
- if (!ppv)
- RRETURN(E_INVALIDARG);
- if (IsEqualIID(riid, IID_IUnknown) ||
- IsEqualIID(riid, IID_IClassFactory))
- {
- *ppv = (IClassFactory *) this;
- }
- else
- {
- *ppv = NULL;
- return E_NOINTERFACE;
- }
- ((IUnknown *)*ppv)->AddRef();
- return S_OK;
- }
- STDMETHODIMP_(ULONG)
- StdClassFactory::AddRef(void)
- {
- ADsAssert(_ulRefs);
- if (_ulRefs == 1)
- INC_OBJECT_COUNT();
- return ++_ulRefs;
- }
- STDMETHODIMP_(ULONG)
- StdClassFactory::Release(void)
- {
- ADsAssert(_ulRefs > 1);
- if (--_ulRefs == 1)
- DEC_OBJECT_COUNT();
- return _ulRefs;
- }
- STDMETHODIMP
- StdClassFactory::LockServer (BOOL fLock)
- {
- if (fLock)
- INC_OBJECT_COUNT();
- else
- DEC_OBJECT_COUNT();
- return NOERROR;
- }
- CDynamicCF::CDynamicCF(void)
- {
- _ulRefs = 1;
- INC_OBJECT_COUNT();
- }
- CDynamicCF::~CDynamicCF(void)
- {
- DEC_OBJECT_COUNT();
- }
- STDMETHODIMP
- CDynamicCF::QueryInterface(REFIID riid, LPVOID FAR* ppv)
- {
- if (!ppv)
- RRETURN(E_INVALIDARG);
- if (IsEqualIID(riid, IID_IUnknown) ||
- IsEqualIID(riid, IID_IClassFactory))
- {
- *ppv = (IClassFactory *) this;
- }
- else
- {
- *ppv = NULL;
- return E_NOINTERFACE;
- }
- ((IUnknown *)*ppv)->AddRef();
- return S_OK;
- }
- STDMETHODIMP
- CDynamicCF::LockServer (BOOL fLock)
- {
- if (fLock)
- {
- _ulRefs++;
- }
- else
- {
- _ulRefs--;
- }
- return S_OK;
- }
- #ifdef DOCGEN
- STDMETHODIMP
- StdClassFactory::CreateInstance(LPUNKNOWN pUnkOuter,
- REFIID iid,
- LPVOID FAR* ppv) {};
- #endif // DOCGEN