summaryrefslogtreecommitdiff
path: root/sapi/activescript/php4as_classfactory.h
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2002-05-20 01:35:29 +0000
committerWez Furlong <wez@php.net>2002-05-20 01:35:29 +0000
commite754361405395908abd687b1403215da2bd98b92 (patch)
treee695f256b31e3a721667dba65199d34869455948 /sapi/activescript/php4as_classfactory.h
parent50f7427e69741acf9094a0f63c35503bfa4afca6 (diff)
downloadphp-git-e754361405395908abd687b1403215da2bd98b92.tar.gz
Implement ActiveScript interfaces.
This allows use of PHP in: Client-side script in Internet Explorer Windows Scripting Host ASP and ASP.NET pages It's mostly working... give it a go. You will need to regsvr32 the php4activescript.dll manually.
Diffstat (limited to 'sapi/activescript/php4as_classfactory.h')
-rw-r--r--sapi/activescript/php4as_classfactory.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/sapi/activescript/php4as_classfactory.h b/sapi/activescript/php4as_classfactory.h
new file mode 100644
index 0000000000..bc4d530c03
--- /dev/null
+++ b/sapi/activescript/php4as_classfactory.h
@@ -0,0 +1,52 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 4 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2002 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 2.02 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available at through the world-wide-web at |
+ | http://www.php.net/license/2_02.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);
+};
+