summaryrefslogtreecommitdiff
path: root/sapi/activescript/php5as_classfactory.h
diff options
context:
space:
mode:
Diffstat (limited to 'sapi/activescript/php5as_classfactory.h')
-rw-r--r--sapi/activescript/php5as_classfactory.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/sapi/activescript/php5as_classfactory.h b/sapi/activescript/php5as_classfactory.h
new file mode 100644
index 0000000000..2f1695fa0c
--- /dev/null
+++ b/sapi/activescript/php5as_classfactory.h
@@ -0,0 +1,52 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2004 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.0 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available through the world-wide-web at the following url: |
+ | http://www.php.net/license/3_0.txt. |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Authors: Wez Furlong <wez@thebrainroom.com> |
+ +----------------------------------------------------------------------+
+ */
+/* $Id$ */
+
+/* IClassFactory Implementation */
+
+#include <unknwn.h>
+
+// {A0AD8E7A-95EC-4819-986F-78D93895F2AE}
+DEFINE_GUID(CLSID_PHPActiveScriptEngine,
+0xa0ad8e7a, 0x95ec, 0x4819, 0x98, 0x6f, 0x78, 0xd9, 0x38, 0x95, 0xf2, 0xae);
+
+class TPHPClassFactory:
+ public IClassFactory
+{
+protected:
+ volatile LONG m_refcount;
+
+ static volatile LONG factory_count;
+ static volatile LONG object_count;
+
+public: /* IUnknown */
+ STDMETHODIMP QueryInterface(REFIID iid, void **ppvObject);
+ STDMETHODIMP_(DWORD) AddRef(void);
+ STDMETHODIMP_(DWORD) Release(void);
+public: /* IClassFactory */
+ STDMETHODIMP CreateInstance(IUnknown *pUnkOuter, REFIID iid, void **ppvObject);
+ STDMETHODIMP LockServer(BOOL fLock);
+
+ TPHPClassFactory();
+ ~TPHPClassFactory();
+
+ static void AddToObjectCount(void);
+ static void RemoveFromObjectCount(void);
+ static int CanUnload(void);
+};
+