summaryrefslogtreecommitdiff
path: root/Shutdown/ShutdownCP.h
diff options
context:
space:
mode:
Diffstat (limited to 'Shutdown/ShutdownCP.h')
-rw-r--r--Shutdown/ShutdownCP.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/Shutdown/ShutdownCP.h b/Shutdown/ShutdownCP.h
new file mode 100644
index 0000000..cbccd51
--- /dev/null
+++ b/Shutdown/ShutdownCP.h
@@ -0,0 +1,36 @@
+#ifndef _SITEIFACESCP_H_
+#define _SITEIFACESCP_H_
+
+#include "../common/events.h"
+
+template <class T>
+class CProxyDShutdownEvents : public IConnectionPointImpl<T, &DIID_DShutdownEvents, CComDynamicUnkArray>
+{
+ //Warning this class may be recreated by the wizard.
+public:
+ HRESULT Fire_Cancel()
+ {
+ CComVariant varResult;
+ T* pT = static_cast<T*>(this);
+ int nConnectionIndex;
+ int nConnections = m_vec.GetSize();
+
+ for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
+ {
+ pT->Lock();
+ CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
+ pT->Unlock();
+ IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
+ if (pDispatch != NULL)
+ {
+ VariantClear(&varResult);
+ DISPPARAMS disp = { NULL, NULL, 0, 0 };
+ pDispatch->Invoke(0x1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL);
+ }
+ }
+
+ return varResult.scode;
+ }
+};
+
+#endif \ No newline at end of file