• R/O
  • SSH
  • HTTPS

vssjscript: Commit


Commit MetaInfo

Revision4 (tree)
Zeit2011-12-28 05:51:01
Autortejima

Log Message

(empty log message)

Ändern Zusammenfassung

Diff

--- trunk/StdAfx.h (nonexistent)
+++ trunk/StdAfx.h (revision 4)
@@ -0,0 +1,22 @@
1+#pragma once
2+
3+#if !defined(WIN32_LEAN_AND_MEAN)
4+# define WIN32_LEAN_AND_MEAN
5+#endif
6+#if !defined(VC_EXTRALEAN)
7+# define VC_EXTRALEAN
8+#endif
9+#if !defined(STRICT)
10+# define STRICT
11+#endif
12+
13+#if !defined(WINVER)
14+# define WINVER 0x0500
15+#endif
16+#if !defined(_WIN32_WINNT)
17+# define _WIN32_WINNT 0x0500
18+#endif
19+
20+#include <windows.h>
21+#include <comdef.h>
22+#include <comip.h>
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/unknown.h (nonexistent)
+++ trunk/unknown.h (revision 4)
@@ -0,0 +1,34 @@
1+#pragma once
2+
3+#if !defined(WIN32_LEAN_AND_MEAN)
4+# define WIN32_LEAN_AND_MEAN
5+#endif
6+#if !defined(VC_EXTRALEAN)
7+# define VC_EXTRALEAN
8+#endif
9+#if !defined(STRICT)
10+# define STRICT
11+#endif
12+
13+#include <windows.h>
14+
15+class UnknownImpl {
16+private:
17+ ULONG count;
18+ static ULONG serverCount;
19+protected:
20+ virtual ~UnknownImpl(void) { }
21+public:
22+ UnknownImpl(void) throw() : count(0) { }
23+ ULONG __stdcall AddRef(void) throw() {
24+ ::InterlockedIncrement(&serverCount);
25+ return ::InterlockedIncrement(&count);
26+ }
27+ ULONG __stdcall Release(void) throw() {
28+ ULONG r = ::InterlockedDecrement(&count);
29+ if (r == 0) delete this;
30+ ::InterlockedDecrement(&serverCount);
31+ return r;
32+ }
33+ static ULONG ServerCount() throw() { return serverCount; }
34+};
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/EventHandlerImpl.h (nonexistent)
+++ trunk/EventHandlerImpl.h (revision 4)
@@ -0,0 +1,67 @@
1+#pragma once
2+
3+#include "StdAfx.h"
4+
5+#include <comdef.h>
6+#include <comip.h>
7+
8+#include "SSAPI.h"
9+#include "unknown.h"
10+#include "exception.h"
11+#include "EventsImpl.h"
12+
13+class EventHandlerImpl : public IVSSEventHandler, private UnknownImpl {
14+public:
15+ HRESULT __stdcall QueryInterface(REFIID riid, void **ppv) throw() try {
16+ if (!ppv) throw _com_error(E_POINTER);
17+ *ppv = nullptr;
18+ if (::IsEqualIID(riid, IID_IUnknown)) {
19+ *ppv = static_cast<IUnknown *>(this);
20+ } else if (::IsEqualIID(riid, IID_IVSSEventHandler)) {
21+ *ppv = static_cast<IVSSEventHandler *>(this);
22+ } else {
23+ throw _com_error(E_NOINTERFACE);
24+ }
25+ this->AddRef();
26+ return S_OK;
27+ } catch (_com_error &hr) {
28+ return hr.Error();
29+ } catch (...) {
30+ return E_UNEXPECTED;
31+ }
32+
33+ ULONG __stdcall AddRef(void) throw() { return UnknownImpl::AddRef(); }
34+
35+ ULONG __stdcall Release(void) throw() { return UnknownImpl::Release(); }
36+
37+ HRESULT __stdcall Init(IVSS *pIVSS) throw() try {
38+ _com_ptr_t<_com_IIID<IVSS, &IID_IVSS>> vss(pIVSS);
39+
40+ HRESULT hr;
41+
42+ _com_ptr_t<_com_IIID<IConnectionPointContainer, &IID_IConnectionPointContainer>> cpc;
43+ hr = vss->QueryInterface(&cpc);
44+ if (FAILED(hr)) throw _com_error(hr);
45+
46+ _com_ptr_t<_com_IIID<IConnectionPoint, &IID_IConnectionPoint>> cp;
47+ hr = cpc->FindConnectionPoint(IID_IVSSEvents, &cp);
48+ if (FAILED(hr)) throw _com_error(hr);
49+
50+ EventsImpl *e = new EventsImpl(vss);
51+ e->AddRef();
52+ _com_ptr_t<_com_IIID<IUnknown, &IID_IUnknown>> uk;
53+ hr = e->QueryInterface(IID_IUnknown, reinterpret_cast<void **>(&uk));
54+ e->Release();
55+ if (FAILED(hr)) throw _com_error(hr);
56+
57+ DWORD cookie;
58+ hr = cp->Advise(uk, &cookie);
59+ if (FAILED(hr)) throw _com_error(hr);
60+
61+ return S_OK;
62+ } catch (_com_error &hr) {
63+ return hr.Error();
64+ } catch (...) {
65+ return E_UNEXPECTED;
66+ }
67+};
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/msscript.h (nonexistent)
+++ trunk/msscript.h (revision 4)
@@ -0,0 +1,1540 @@
1+
2+
3+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
4+
5+
6+ /* File created by MIDL compiler version 7.00.0555 */
7+/* at Fri Dec 23 17:09:02 2011
8+ */
9+/* Compiler settings for msscript.IDL:
10+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
11+ protocol : dce , ms_ext, c_ext, robust
12+ error checks: allocation ref bounds_check enum stub_data
13+ VC __declspec() decoration level:
14+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
15+ DECLSPEC_UUID(), MIDL_INTERFACE()
16+*/
17+/* @@MIDL_FILE_HEADING( ) */
18+
19+#pragma warning( disable: 4049 ) /* more than 64k source lines */
20+
21+
22+/* verify that the <rpcndr.h> version is high enough to compile this file*/
23+#ifndef __REQUIRED_RPCNDR_H_VERSION__
24+#define __REQUIRED_RPCNDR_H_VERSION__ 475
25+#endif
26+
27+#include "rpc.h"
28+#include "rpcndr.h"
29+
30+#ifndef __RPCNDR_H_VERSION__
31+#error this stub requires an updated version of <rpcndr.h>
32+#endif // __RPCNDR_H_VERSION__
33+
34+
35+#ifndef __msscript_h__
36+#define __msscript_h__
37+
38+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
39+#pragma once
40+#endif
41+
42+/* Forward Declarations */
43+
44+#ifndef __IScriptProcedure_FWD_DEFINED__
45+#define __IScriptProcedure_FWD_DEFINED__
46+typedef interface IScriptProcedure IScriptProcedure;
47+#endif /* __IScriptProcedure_FWD_DEFINED__ */
48+
49+
50+#ifndef __IScriptProcedureCollection_FWD_DEFINED__
51+#define __IScriptProcedureCollection_FWD_DEFINED__
52+typedef interface IScriptProcedureCollection IScriptProcedureCollection;
53+#endif /* __IScriptProcedureCollection_FWD_DEFINED__ */
54+
55+
56+#ifndef __IScriptModule_FWD_DEFINED__
57+#define __IScriptModule_FWD_DEFINED__
58+typedef interface IScriptModule IScriptModule;
59+#endif /* __IScriptModule_FWD_DEFINED__ */
60+
61+
62+#ifndef __IScriptModuleCollection_FWD_DEFINED__
63+#define __IScriptModuleCollection_FWD_DEFINED__
64+typedef interface IScriptModuleCollection IScriptModuleCollection;
65+#endif /* __IScriptModuleCollection_FWD_DEFINED__ */
66+
67+
68+#ifndef __IScriptError_FWD_DEFINED__
69+#define __IScriptError_FWD_DEFINED__
70+typedef interface IScriptError IScriptError;
71+#endif /* __IScriptError_FWD_DEFINED__ */
72+
73+
74+#ifndef __IScriptControl_FWD_DEFINED__
75+#define __IScriptControl_FWD_DEFINED__
76+typedef interface IScriptControl IScriptControl;
77+#endif /* __IScriptControl_FWD_DEFINED__ */
78+
79+
80+#ifndef __DScriptControlSource_FWD_DEFINED__
81+#define __DScriptControlSource_FWD_DEFINED__
82+typedef interface DScriptControlSource DScriptControlSource;
83+#endif /* __DScriptControlSource_FWD_DEFINED__ */
84+
85+
86+#ifndef __Procedure_FWD_DEFINED__
87+#define __Procedure_FWD_DEFINED__
88+
89+#ifdef __cplusplus
90+typedef class Procedure Procedure;
91+#else
92+typedef struct Procedure Procedure;
93+#endif /* __cplusplus */
94+
95+#endif /* __Procedure_FWD_DEFINED__ */
96+
97+
98+#ifndef __Procedures_FWD_DEFINED__
99+#define __Procedures_FWD_DEFINED__
100+
101+#ifdef __cplusplus
102+typedef class Procedures Procedures;
103+#else
104+typedef struct Procedures Procedures;
105+#endif /* __cplusplus */
106+
107+#endif /* __Procedures_FWD_DEFINED__ */
108+
109+
110+#ifndef __Module_FWD_DEFINED__
111+#define __Module_FWD_DEFINED__
112+
113+#ifdef __cplusplus
114+typedef class Module Module;
115+#else
116+typedef struct Module Module;
117+#endif /* __cplusplus */
118+
119+#endif /* __Module_FWD_DEFINED__ */
120+
121+
122+#ifndef __Modules_FWD_DEFINED__
123+#define __Modules_FWD_DEFINED__
124+
125+#ifdef __cplusplus
126+typedef class Modules Modules;
127+#else
128+typedef struct Modules Modules;
129+#endif /* __cplusplus */
130+
131+#endif /* __Modules_FWD_DEFINED__ */
132+
133+
134+#ifndef __Error_FWD_DEFINED__
135+#define __Error_FWD_DEFINED__
136+
137+#ifdef __cplusplus
138+typedef class Error Error;
139+#else
140+typedef struct Error Error;
141+#endif /* __cplusplus */
142+
143+#endif /* __Error_FWD_DEFINED__ */
144+
145+
146+#ifndef __ScriptControl_FWD_DEFINED__
147+#define __ScriptControl_FWD_DEFINED__
148+
149+#ifdef __cplusplus
150+typedef class ScriptControl ScriptControl;
151+#else
152+typedef struct ScriptControl ScriptControl;
153+#endif /* __cplusplus */
154+
155+#endif /* __ScriptControl_FWD_DEFINED__ */
156+
157+
158+#ifdef __cplusplus
159+extern "C"{
160+#endif
161+
162+
163+
164+#ifndef __MSScriptControl_LIBRARY_DEFINED__
165+#define __MSScriptControl_LIBRARY_DEFINED__
166+
167+/* library MSScriptControl */
168+/* [helpcontext][helpfile][helpstring][version][uuid] */
169+
170+
171+
172+
173+
174+
175+
176+
177+typedef /* [public][public][public][helpcontext][helpstring] */
178+enum __MIDL___MIDL_itf_msscript_0001_0000_0001
179+ { Initialized = 0,
180+ Connected = 1
181+ } ScriptControlStates;
182+
183+
184+EXTERN_C const IID LIBID_MSScriptControl;
185+
186+#ifndef __IScriptProcedure_INTERFACE_DEFINED__
187+#define __IScriptProcedure_INTERFACE_DEFINED__
188+
189+/* interface IScriptProcedure */
190+/* [object][oleautomation][nonextensible][dual][hidden][helpcontext][helpstring][uuid] */
191+
192+
193+EXTERN_C const IID IID_IScriptProcedure;
194+
195+#if defined(__cplusplus) && !defined(CINTERFACE)
196+
197+ MIDL_INTERFACE("70841C73-067D-11D0-95D8-00A02463AB28")
198+ IScriptProcedure : public IDispatch
199+ {
200+ public:
201+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name(
202+ /* [retval][out] */ BSTR *pbstrName) = 0;
203+
204+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_NumArgs(
205+ /* [retval][out] */ long *pcArgs) = 0;
206+
207+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HasReturnValue(
208+ /* [retval][out] */ VARIANT_BOOL *pfHasReturnValue) = 0;
209+
210+ };
211+
212+#else /* C style interface */
213+
214+ typedef struct IScriptProcedureVtbl
215+ {
216+ BEGIN_INTERFACE
217+
218+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
219+ IScriptProcedure * This,
220+ /* [in] */ REFIID riid,
221+ /* [annotation][iid_is][out] */
222+ __RPC__deref_out void **ppvObject);
223+
224+ ULONG ( STDMETHODCALLTYPE *AddRef )(
225+ IScriptProcedure * This);
226+
227+ ULONG ( STDMETHODCALLTYPE *Release )(
228+ IScriptProcedure * This);
229+
230+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
231+ IScriptProcedure * This,
232+ /* [out] */ UINT *pctinfo);
233+
234+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
235+ IScriptProcedure * This,
236+ /* [in] */ UINT iTInfo,
237+ /* [in] */ LCID lcid,
238+ /* [out] */ ITypeInfo **ppTInfo);
239+
240+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
241+ IScriptProcedure * This,
242+ /* [in] */ REFIID riid,
243+ /* [size_is][in] */ LPOLESTR *rgszNames,
244+ /* [range][in] */ UINT cNames,
245+ /* [in] */ LCID lcid,
246+ /* [size_is][out] */ DISPID *rgDispId);
247+
248+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
249+ IScriptProcedure * This,
250+ /* [in] */ DISPID dispIdMember,
251+ /* [in] */ REFIID riid,
252+ /* [in] */ LCID lcid,
253+ /* [in] */ WORD wFlags,
254+ /* [out][in] */ DISPPARAMS *pDispParams,
255+ /* [out] */ VARIANT *pVarResult,
256+ /* [out] */ EXCEPINFO *pExcepInfo,
257+ /* [out] */ UINT *puArgErr);
258+
259+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
260+ IScriptProcedure * This,
261+ /* [retval][out] */ BSTR *pbstrName);
262+
263+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumArgs )(
264+ IScriptProcedure * This,
265+ /* [retval][out] */ long *pcArgs);
266+
267+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HasReturnValue )(
268+ IScriptProcedure * This,
269+ /* [retval][out] */ VARIANT_BOOL *pfHasReturnValue);
270+
271+ END_INTERFACE
272+ } IScriptProcedureVtbl;
273+
274+ interface IScriptProcedure
275+ {
276+ CONST_VTBL struct IScriptProcedureVtbl *lpVtbl;
277+ };
278+
279+
280+
281+#ifdef COBJMACROS
282+
283+
284+#define IScriptProcedure_QueryInterface(This,riid,ppvObject) \
285+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
286+
287+#define IScriptProcedure_AddRef(This) \
288+ ( (This)->lpVtbl -> AddRef(This) )
289+
290+#define IScriptProcedure_Release(This) \
291+ ( (This)->lpVtbl -> Release(This) )
292+
293+
294+#define IScriptProcedure_GetTypeInfoCount(This,pctinfo) \
295+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
296+
297+#define IScriptProcedure_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
298+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
299+
300+#define IScriptProcedure_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
301+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
302+
303+#define IScriptProcedure_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
304+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
305+
306+
307+#define IScriptProcedure_get_Name(This,pbstrName) \
308+ ( (This)->lpVtbl -> get_Name(This,pbstrName) )
309+
310+#define IScriptProcedure_get_NumArgs(This,pcArgs) \
311+ ( (This)->lpVtbl -> get_NumArgs(This,pcArgs) )
312+
313+#define IScriptProcedure_get_HasReturnValue(This,pfHasReturnValue) \
314+ ( (This)->lpVtbl -> get_HasReturnValue(This,pfHasReturnValue) )
315+
316+#endif /* COBJMACROS */
317+
318+
319+#endif /* C style interface */
320+
321+
322+
323+
324+#endif /* __IScriptProcedure_INTERFACE_DEFINED__ */
325+
326+
327+#ifndef __IScriptProcedureCollection_INTERFACE_DEFINED__
328+#define __IScriptProcedureCollection_INTERFACE_DEFINED__
329+
330+/* interface IScriptProcedureCollection */
331+/* [object][oleautomation][nonextensible][dual][hidden][helpcontext][helpstring][uuid] */
332+
333+
334+EXTERN_C const IID IID_IScriptProcedureCollection;
335+
336+#if defined(__cplusplus) && !defined(CINTERFACE)
337+
338+ MIDL_INTERFACE("70841C71-067D-11D0-95D8-00A02463AB28")
339+ IScriptProcedureCollection : public IDispatch
340+ {
341+ public:
342+ virtual /* [hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
343+ /* [retval][out] */ IUnknown **ppenumProcedures) = 0;
344+
345+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Item(
346+ /* [in] */ VARIANT Index,
347+ /* [retval][out] */ IScriptProcedure **ppdispProcedure) = 0;
348+
349+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count(
350+ /* [retval][out] */ long *plCount) = 0;
351+
352+ };
353+
354+#else /* C style interface */
355+
356+ typedef struct IScriptProcedureCollectionVtbl
357+ {
358+ BEGIN_INTERFACE
359+
360+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
361+ IScriptProcedureCollection * This,
362+ /* [in] */ REFIID riid,
363+ /* [annotation][iid_is][out] */
364+ __RPC__deref_out void **ppvObject);
365+
366+ ULONG ( STDMETHODCALLTYPE *AddRef )(
367+ IScriptProcedureCollection * This);
368+
369+ ULONG ( STDMETHODCALLTYPE *Release )(
370+ IScriptProcedureCollection * This);
371+
372+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
373+ IScriptProcedureCollection * This,
374+ /* [out] */ UINT *pctinfo);
375+
376+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
377+ IScriptProcedureCollection * This,
378+ /* [in] */ UINT iTInfo,
379+ /* [in] */ LCID lcid,
380+ /* [out] */ ITypeInfo **ppTInfo);
381+
382+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
383+ IScriptProcedureCollection * This,
384+ /* [in] */ REFIID riid,
385+ /* [size_is][in] */ LPOLESTR *rgszNames,
386+ /* [range][in] */ UINT cNames,
387+ /* [in] */ LCID lcid,
388+ /* [size_is][out] */ DISPID *rgDispId);
389+
390+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
391+ IScriptProcedureCollection * This,
392+ /* [in] */ DISPID dispIdMember,
393+ /* [in] */ REFIID riid,
394+ /* [in] */ LCID lcid,
395+ /* [in] */ WORD wFlags,
396+ /* [out][in] */ DISPPARAMS *pDispParams,
397+ /* [out] */ VARIANT *pVarResult,
398+ /* [out] */ EXCEPINFO *pExcepInfo,
399+ /* [out] */ UINT *puArgErr);
400+
401+ /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
402+ IScriptProcedureCollection * This,
403+ /* [retval][out] */ IUnknown **ppenumProcedures);
404+
405+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
406+ IScriptProcedureCollection * This,
407+ /* [in] */ VARIANT Index,
408+ /* [retval][out] */ IScriptProcedure **ppdispProcedure);
409+
410+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
411+ IScriptProcedureCollection * This,
412+ /* [retval][out] */ long *plCount);
413+
414+ END_INTERFACE
415+ } IScriptProcedureCollectionVtbl;
416+
417+ interface IScriptProcedureCollection
418+ {
419+ CONST_VTBL struct IScriptProcedureCollectionVtbl *lpVtbl;
420+ };
421+
422+
423+
424+#ifdef COBJMACROS
425+
426+
427+#define IScriptProcedureCollection_QueryInterface(This,riid,ppvObject) \
428+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
429+
430+#define IScriptProcedureCollection_AddRef(This) \
431+ ( (This)->lpVtbl -> AddRef(This) )
432+
433+#define IScriptProcedureCollection_Release(This) \
434+ ( (This)->lpVtbl -> Release(This) )
435+
436+
437+#define IScriptProcedureCollection_GetTypeInfoCount(This,pctinfo) \
438+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
439+
440+#define IScriptProcedureCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
441+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
442+
443+#define IScriptProcedureCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
444+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
445+
446+#define IScriptProcedureCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
447+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
448+
449+
450+#define IScriptProcedureCollection_get__NewEnum(This,ppenumProcedures) \
451+ ( (This)->lpVtbl -> get__NewEnum(This,ppenumProcedures) )
452+
453+#define IScriptProcedureCollection_get_Item(This,Index,ppdispProcedure) \
454+ ( (This)->lpVtbl -> get_Item(This,Index,ppdispProcedure) )
455+
456+#define IScriptProcedureCollection_get_Count(This,plCount) \
457+ ( (This)->lpVtbl -> get_Count(This,plCount) )
458+
459+#endif /* COBJMACROS */
460+
461+
462+#endif /* C style interface */
463+
464+
465+
466+
467+#endif /* __IScriptProcedureCollection_INTERFACE_DEFINED__ */
468+
469+
470+#ifndef __IScriptModule_INTERFACE_DEFINED__
471+#define __IScriptModule_INTERFACE_DEFINED__
472+
473+/* interface IScriptModule */
474+/* [object][oleautomation][nonextensible][dual][hidden][helpcontext][helpstring][uuid] */
475+
476+
477+EXTERN_C const IID IID_IScriptModule;
478+
479+#if defined(__cplusplus) && !defined(CINTERFACE)
480+
481+ MIDL_INTERFACE("70841C70-067D-11D0-95D8-00A02463AB28")
482+ IScriptModule : public IDispatch
483+ {
484+ public:
485+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name(
486+ /* [retval][out] */ BSTR *pbstrName) = 0;
487+
488+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CodeObject(
489+ /* [retval][out] */ IDispatch **ppdispObject) = 0;
490+
491+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Procedures(
492+ /* [retval][out] */ IScriptProcedureCollection **ppdispProcedures) = 0;
493+
494+ virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCode(
495+ /* [in] */ BSTR Code) = 0;
496+
497+ virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Eval(
498+ /* [in] */ BSTR Expression,
499+ /* [retval][out] */ VARIANT *pvarResult) = 0;
500+
501+ virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE ExecuteStatement(
502+ /* [in] */ BSTR Statement) = 0;
503+
504+ virtual /* [helpcontext][helpstring][vararg][id] */ HRESULT STDMETHODCALLTYPE Run(
505+ /* [in] */ BSTR ProcedureName,
506+ /* [in] */ SAFEARRAY * *Parameters,
507+ /* [retval][out] */ VARIANT *pvarResult) = 0;
508+
509+ };
510+
511+#else /* C style interface */
512+
513+ typedef struct IScriptModuleVtbl
514+ {
515+ BEGIN_INTERFACE
516+
517+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
518+ IScriptModule * This,
519+ /* [in] */ REFIID riid,
520+ /* [annotation][iid_is][out] */
521+ __RPC__deref_out void **ppvObject);
522+
523+ ULONG ( STDMETHODCALLTYPE *AddRef )(
524+ IScriptModule * This);
525+
526+ ULONG ( STDMETHODCALLTYPE *Release )(
527+ IScriptModule * This);
528+
529+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
530+ IScriptModule * This,
531+ /* [out] */ UINT *pctinfo);
532+
533+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
534+ IScriptModule * This,
535+ /* [in] */ UINT iTInfo,
536+ /* [in] */ LCID lcid,
537+ /* [out] */ ITypeInfo **ppTInfo);
538+
539+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
540+ IScriptModule * This,
541+ /* [in] */ REFIID riid,
542+ /* [size_is][in] */ LPOLESTR *rgszNames,
543+ /* [range][in] */ UINT cNames,
544+ /* [in] */ LCID lcid,
545+ /* [size_is][out] */ DISPID *rgDispId);
546+
547+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
548+ IScriptModule * This,
549+ /* [in] */ DISPID dispIdMember,
550+ /* [in] */ REFIID riid,
551+ /* [in] */ LCID lcid,
552+ /* [in] */ WORD wFlags,
553+ /* [out][in] */ DISPPARAMS *pDispParams,
554+ /* [out] */ VARIANT *pVarResult,
555+ /* [out] */ EXCEPINFO *pExcepInfo,
556+ /* [out] */ UINT *puArgErr);
557+
558+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
559+ IScriptModule * This,
560+ /* [retval][out] */ BSTR *pbstrName);
561+
562+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CodeObject )(
563+ IScriptModule * This,
564+ /* [retval][out] */ IDispatch **ppdispObject);
565+
566+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Procedures )(
567+ IScriptModule * This,
568+ /* [retval][out] */ IScriptProcedureCollection **ppdispProcedures);
569+
570+ /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCode )(
571+ IScriptModule * This,
572+ /* [in] */ BSTR Code);
573+
574+ /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Eval )(
575+ IScriptModule * This,
576+ /* [in] */ BSTR Expression,
577+ /* [retval][out] */ VARIANT *pvarResult);
578+
579+ /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ExecuteStatement )(
580+ IScriptModule * This,
581+ /* [in] */ BSTR Statement);
582+
583+ /* [helpcontext][helpstring][vararg][id] */ HRESULT ( STDMETHODCALLTYPE *Run )(
584+ IScriptModule * This,
585+ /* [in] */ BSTR ProcedureName,
586+ /* [in] */ SAFEARRAY * *Parameters,
587+ /* [retval][out] */ VARIANT *pvarResult);
588+
589+ END_INTERFACE
590+ } IScriptModuleVtbl;
591+
592+ interface IScriptModule
593+ {
594+ CONST_VTBL struct IScriptModuleVtbl *lpVtbl;
595+ };
596+
597+
598+
599+#ifdef COBJMACROS
600+
601+
602+#define IScriptModule_QueryInterface(This,riid,ppvObject) \
603+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
604+
605+#define IScriptModule_AddRef(This) \
606+ ( (This)->lpVtbl -> AddRef(This) )
607+
608+#define IScriptModule_Release(This) \
609+ ( (This)->lpVtbl -> Release(This) )
610+
611+
612+#define IScriptModule_GetTypeInfoCount(This,pctinfo) \
613+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
614+
615+#define IScriptModule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
616+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
617+
618+#define IScriptModule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
619+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
620+
621+#define IScriptModule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
622+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
623+
624+
625+#define IScriptModule_get_Name(This,pbstrName) \
626+ ( (This)->lpVtbl -> get_Name(This,pbstrName) )
627+
628+#define IScriptModule_get_CodeObject(This,ppdispObject) \
629+ ( (This)->lpVtbl -> get_CodeObject(This,ppdispObject) )
630+
631+#define IScriptModule_get_Procedures(This,ppdispProcedures) \
632+ ( (This)->lpVtbl -> get_Procedures(This,ppdispProcedures) )
633+
634+#define IScriptModule_AddCode(This,Code) \
635+ ( (This)->lpVtbl -> AddCode(This,Code) )
636+
637+#define IScriptModule_Eval(This,Expression,pvarResult) \
638+ ( (This)->lpVtbl -> Eval(This,Expression,pvarResult) )
639+
640+#define IScriptModule_ExecuteStatement(This,Statement) \
641+ ( (This)->lpVtbl -> ExecuteStatement(This,Statement) )
642+
643+#define IScriptModule_Run(This,ProcedureName,Parameters,pvarResult) \
644+ ( (This)->lpVtbl -> Run(This,ProcedureName,Parameters,pvarResult) )
645+
646+#endif /* COBJMACROS */
647+
648+
649+#endif /* C style interface */
650+
651+
652+
653+
654+#endif /* __IScriptModule_INTERFACE_DEFINED__ */
655+
656+
657+#ifndef __IScriptModuleCollection_INTERFACE_DEFINED__
658+#define __IScriptModuleCollection_INTERFACE_DEFINED__
659+
660+/* interface IScriptModuleCollection */
661+/* [object][oleautomation][nonextensible][dual][hidden][helpcontext][helpstring][uuid] */
662+
663+
664+EXTERN_C const IID IID_IScriptModuleCollection;
665+
666+#if defined(__cplusplus) && !defined(CINTERFACE)
667+
668+ MIDL_INTERFACE("70841C6F-067D-11D0-95D8-00A02463AB28")
669+ IScriptModuleCollection : public IDispatch
670+ {
671+ public:
672+ virtual /* [hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
673+ /* [retval][out] */ IUnknown **ppenumContexts) = 0;
674+
675+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Item(
676+ /* [in] */ VARIANT Index,
677+ /* [retval][out] */ IScriptModule **ppmod) = 0;
678+
679+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Count(
680+ /* [retval][out] */ long *plCount) = 0;
681+
682+ virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Add(
683+ /* [in] */ BSTR Name,
684+ /* [optional][in] */ VARIANT *Object,
685+ /* [retval][out] */ IScriptModule **ppmod) = 0;
686+
687+ };
688+
689+#else /* C style interface */
690+
691+ typedef struct IScriptModuleCollectionVtbl
692+ {
693+ BEGIN_INTERFACE
694+
695+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
696+ IScriptModuleCollection * This,
697+ /* [in] */ REFIID riid,
698+ /* [annotation][iid_is][out] */
699+ __RPC__deref_out void **ppvObject);
700+
701+ ULONG ( STDMETHODCALLTYPE *AddRef )(
702+ IScriptModuleCollection * This);
703+
704+ ULONG ( STDMETHODCALLTYPE *Release )(
705+ IScriptModuleCollection * This);
706+
707+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
708+ IScriptModuleCollection * This,
709+ /* [out] */ UINT *pctinfo);
710+
711+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
712+ IScriptModuleCollection * This,
713+ /* [in] */ UINT iTInfo,
714+ /* [in] */ LCID lcid,
715+ /* [out] */ ITypeInfo **ppTInfo);
716+
717+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
718+ IScriptModuleCollection * This,
719+ /* [in] */ REFIID riid,
720+ /* [size_is][in] */ LPOLESTR *rgszNames,
721+ /* [range][in] */ UINT cNames,
722+ /* [in] */ LCID lcid,
723+ /* [size_is][out] */ DISPID *rgDispId);
724+
725+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
726+ IScriptModuleCollection * This,
727+ /* [in] */ DISPID dispIdMember,
728+ /* [in] */ REFIID riid,
729+ /* [in] */ LCID lcid,
730+ /* [in] */ WORD wFlags,
731+ /* [out][in] */ DISPPARAMS *pDispParams,
732+ /* [out] */ VARIANT *pVarResult,
733+ /* [out] */ EXCEPINFO *pExcepInfo,
734+ /* [out] */ UINT *puArgErr);
735+
736+ /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
737+ IScriptModuleCollection * This,
738+ /* [retval][out] */ IUnknown **ppenumContexts);
739+
740+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
741+ IScriptModuleCollection * This,
742+ /* [in] */ VARIANT Index,
743+ /* [retval][out] */ IScriptModule **ppmod);
744+
745+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
746+ IScriptModuleCollection * This,
747+ /* [retval][out] */ long *plCount);
748+
749+ /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )(
750+ IScriptModuleCollection * This,
751+ /* [in] */ BSTR Name,
752+ /* [optional][in] */ VARIANT *Object,
753+ /* [retval][out] */ IScriptModule **ppmod);
754+
755+ END_INTERFACE
756+ } IScriptModuleCollectionVtbl;
757+
758+ interface IScriptModuleCollection
759+ {
760+ CONST_VTBL struct IScriptModuleCollectionVtbl *lpVtbl;
761+ };
762+
763+
764+
765+#ifdef COBJMACROS
766+
767+
768+#define IScriptModuleCollection_QueryInterface(This,riid,ppvObject) \
769+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
770+
771+#define IScriptModuleCollection_AddRef(This) \
772+ ( (This)->lpVtbl -> AddRef(This) )
773+
774+#define IScriptModuleCollection_Release(This) \
775+ ( (This)->lpVtbl -> Release(This) )
776+
777+
778+#define IScriptModuleCollection_GetTypeInfoCount(This,pctinfo) \
779+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
780+
781+#define IScriptModuleCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
782+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
783+
784+#define IScriptModuleCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
785+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
786+
787+#define IScriptModuleCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
788+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
789+
790+
791+#define IScriptModuleCollection_get__NewEnum(This,ppenumContexts) \
792+ ( (This)->lpVtbl -> get__NewEnum(This,ppenumContexts) )
793+
794+#define IScriptModuleCollection_get_Item(This,Index,ppmod) \
795+ ( (This)->lpVtbl -> get_Item(This,Index,ppmod) )
796+
797+#define IScriptModuleCollection_get_Count(This,plCount) \
798+ ( (This)->lpVtbl -> get_Count(This,plCount) )
799+
800+#define IScriptModuleCollection_Add(This,Name,Object,ppmod) \
801+ ( (This)->lpVtbl -> Add(This,Name,Object,ppmod) )
802+
803+#endif /* COBJMACROS */
804+
805+
806+#endif /* C style interface */
807+
808+
809+
810+
811+#endif /* __IScriptModuleCollection_INTERFACE_DEFINED__ */
812+
813+
814+#ifndef __IScriptError_INTERFACE_DEFINED__
815+#define __IScriptError_INTERFACE_DEFINED__
816+
817+/* interface IScriptError */
818+/* [object][oleautomation][nonextensible][dual][hidden][helpcontext][helpstring][uuid] */
819+
820+
821+EXTERN_C const IID IID_IScriptError;
822+
823+#if defined(__cplusplus) && !defined(CINTERFACE)
824+
825+ MIDL_INTERFACE("70841C78-067D-11D0-95D8-00A02463AB28")
826+ IScriptError : public IDispatch
827+ {
828+ public:
829+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Number(
830+ /* [retval][out] */ long *plNumber) = 0;
831+
832+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Source(
833+ /* [retval][out] */ BSTR *pbstrSource) = 0;
834+
835+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Description(
836+ /* [retval][out] */ BSTR *pbstrDescription) = 0;
837+
838+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HelpFile(
839+ /* [retval][out] */ BSTR *pbstrHelpFile) = 0;
840+
841+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HelpContext(
842+ /* [retval][out] */ long *plHelpContext) = 0;
843+
844+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Text(
845+ /* [retval][out] */ BSTR *pbstrText) = 0;
846+
847+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Line(
848+ /* [retval][out] */ long *plLine) = 0;
849+
850+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Column(
851+ /* [retval][out] */ long *plColumn) = 0;
852+
853+ virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
854+
855+ };
856+
857+#else /* C style interface */
858+
859+ typedef struct IScriptErrorVtbl
860+ {
861+ BEGIN_INTERFACE
862+
863+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
864+ IScriptError * This,
865+ /* [in] */ REFIID riid,
866+ /* [annotation][iid_is][out] */
867+ __RPC__deref_out void **ppvObject);
868+
869+ ULONG ( STDMETHODCALLTYPE *AddRef )(
870+ IScriptError * This);
871+
872+ ULONG ( STDMETHODCALLTYPE *Release )(
873+ IScriptError * This);
874+
875+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
876+ IScriptError * This,
877+ /* [out] */ UINT *pctinfo);
878+
879+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
880+ IScriptError * This,
881+ /* [in] */ UINT iTInfo,
882+ /* [in] */ LCID lcid,
883+ /* [out] */ ITypeInfo **ppTInfo);
884+
885+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
886+ IScriptError * This,
887+ /* [in] */ REFIID riid,
888+ /* [size_is][in] */ LPOLESTR *rgszNames,
889+ /* [range][in] */ UINT cNames,
890+ /* [in] */ LCID lcid,
891+ /* [size_is][out] */ DISPID *rgDispId);
892+
893+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
894+ IScriptError * This,
895+ /* [in] */ DISPID dispIdMember,
896+ /* [in] */ REFIID riid,
897+ /* [in] */ LCID lcid,
898+ /* [in] */ WORD wFlags,
899+ /* [out][in] */ DISPPARAMS *pDispParams,
900+ /* [out] */ VARIANT *pVarResult,
901+ /* [out] */ EXCEPINFO *pExcepInfo,
902+ /* [out] */ UINT *puArgErr);
903+
904+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Number )(
905+ IScriptError * This,
906+ /* [retval][out] */ long *plNumber);
907+
908+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Source )(
909+ IScriptError * This,
910+ /* [retval][out] */ BSTR *pbstrSource);
911+
912+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Description )(
913+ IScriptError * This,
914+ /* [retval][out] */ BSTR *pbstrDescription);
915+
916+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HelpFile )(
917+ IScriptError * This,
918+ /* [retval][out] */ BSTR *pbstrHelpFile);
919+
920+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HelpContext )(
921+ IScriptError * This,
922+ /* [retval][out] */ long *plHelpContext);
923+
924+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Text )(
925+ IScriptError * This,
926+ /* [retval][out] */ BSTR *pbstrText);
927+
928+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Line )(
929+ IScriptError * This,
930+ /* [retval][out] */ long *plLine);
931+
932+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Column )(
933+ IScriptError * This,
934+ /* [retval][out] */ long *plColumn);
935+
936+ /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )(
937+ IScriptError * This);
938+
939+ END_INTERFACE
940+ } IScriptErrorVtbl;
941+
942+ interface IScriptError
943+ {
944+ CONST_VTBL struct IScriptErrorVtbl *lpVtbl;
945+ };
946+
947+
948+
949+#ifdef COBJMACROS
950+
951+
952+#define IScriptError_QueryInterface(This,riid,ppvObject) \
953+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
954+
955+#define IScriptError_AddRef(This) \
956+ ( (This)->lpVtbl -> AddRef(This) )
957+
958+#define IScriptError_Release(This) \
959+ ( (This)->lpVtbl -> Release(This) )
960+
961+
962+#define IScriptError_GetTypeInfoCount(This,pctinfo) \
963+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
964+
965+#define IScriptError_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
966+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
967+
968+#define IScriptError_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
969+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
970+
971+#define IScriptError_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
972+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
973+
974+
975+#define IScriptError_get_Number(This,plNumber) \
976+ ( (This)->lpVtbl -> get_Number(This,plNumber) )
977+
978+#define IScriptError_get_Source(This,pbstrSource) \
979+ ( (This)->lpVtbl -> get_Source(This,pbstrSource) )
980+
981+#define IScriptError_get_Description(This,pbstrDescription) \
982+ ( (This)->lpVtbl -> get_Description(This,pbstrDescription) )
983+
984+#define IScriptError_get_HelpFile(This,pbstrHelpFile) \
985+ ( (This)->lpVtbl -> get_HelpFile(This,pbstrHelpFile) )
986+
987+#define IScriptError_get_HelpContext(This,plHelpContext) \
988+ ( (This)->lpVtbl -> get_HelpContext(This,plHelpContext) )
989+
990+#define IScriptError_get_Text(This,pbstrText) \
991+ ( (This)->lpVtbl -> get_Text(This,pbstrText) )
992+
993+#define IScriptError_get_Line(This,plLine) \
994+ ( (This)->lpVtbl -> get_Line(This,plLine) )
995+
996+#define IScriptError_get_Column(This,plColumn) \
997+ ( (This)->lpVtbl -> get_Column(This,plColumn) )
998+
999+#define IScriptError_Clear(This) \
1000+ ( (This)->lpVtbl -> Clear(This) )
1001+
1002+#endif /* COBJMACROS */
1003+
1004+
1005+#endif /* C style interface */
1006+
1007+
1008+
1009+
1010+#endif /* __IScriptError_INTERFACE_DEFINED__ */
1011+
1012+
1013+#ifndef __IScriptControl_INTERFACE_DEFINED__
1014+#define __IScriptControl_INTERFACE_DEFINED__
1015+
1016+/* interface IScriptControl */
1017+/* [object][oleautomation][nonextensible][dual][hidden][helpcontext][helpstring][uuid] */
1018+
1019+
1020+EXTERN_C const IID IID_IScriptControl;
1021+
1022+#if defined(__cplusplus) && !defined(CINTERFACE)
1023+
1024+ MIDL_INTERFACE("0E59F1D3-1FBE-11D0-8FF2-00A0D10038BC")
1025+ IScriptControl : public IDispatch
1026+ {
1027+ public:
1028+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Language(
1029+ /* [retval][out] */ BSTR *pbstrLanguage) = 0;
1030+
1031+ virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Language(
1032+ /* [in] */ BSTR pbstrLanguage) = 0;
1033+
1034+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_State(
1035+ /* [retval][out] */ ScriptControlStates *pssState) = 0;
1036+
1037+ virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_State(
1038+ /* [in] */ ScriptControlStates pssState) = 0;
1039+
1040+ virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_SitehWnd(
1041+ /* [in] */ long phwnd) = 0;
1042+
1043+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_SitehWnd(
1044+ /* [retval][out] */ long *phwnd) = 0;
1045+
1046+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Timeout(
1047+ /* [retval][out] */ long *plMilleseconds) = 0;
1048+
1049+ virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Timeout(
1050+ /* [in] */ long plMilleseconds) = 0;
1051+
1052+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AllowUI(
1053+ /* [retval][out] */ VARIANT_BOOL *pfAllowUI) = 0;
1054+
1055+ virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AllowUI(
1056+ /* [in] */ VARIANT_BOOL pfAllowUI) = 0;
1057+
1058+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_UseSafeSubset(
1059+ /* [retval][out] */ VARIANT_BOOL *pfUseSafeSubset) = 0;
1060+
1061+ virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_UseSafeSubset(
1062+ /* [in] */ VARIANT_BOOL pfUseSafeSubset) = 0;
1063+
1064+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Modules(
1065+ /* [retval][out] */ IScriptModuleCollection **ppmods) = 0;
1066+
1067+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Error(
1068+ /* [retval][out] */ IScriptError **ppse) = 0;
1069+
1070+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_CodeObject(
1071+ /* [retval][out] */ IDispatch **ppdispObject) = 0;
1072+
1073+ virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Procedures(
1074+ /* [retval][out] */ IScriptProcedureCollection **ppdispProcedures) = 0;
1075+
1076+ virtual /* [hidden][id] */ HRESULT STDMETHODCALLTYPE _AboutBox( void) = 0;
1077+
1078+ virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE AddObject(
1079+ /* [in] */ BSTR Name,
1080+ /* [in] */ IDispatch *Object,
1081+ /* [defaultvalue][optional][in] */ VARIANT_BOOL AddMembers = 0) = 0;
1082+
1083+ virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Reset( void) = 0;
1084+
1085+ virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCode(
1086+ /* [in] */ BSTR Code) = 0;
1087+
1088+ virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Eval(
1089+ /* [in] */ BSTR Expression,
1090+ /* [retval][out] */ VARIANT *pvarResult) = 0;
1091+
1092+ virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE ExecuteStatement(
1093+ /* [in] */ BSTR Statement) = 0;
1094+
1095+ virtual /* [helpcontext][helpstring][vararg][id] */ HRESULT STDMETHODCALLTYPE Run(
1096+ /* [in] */ BSTR ProcedureName,
1097+ /* [in] */ SAFEARRAY * *Parameters,
1098+ /* [retval][out] */ VARIANT *pvarResult) = 0;
1099+
1100+ };
1101+
1102+#else /* C style interface */
1103+
1104+ typedef struct IScriptControlVtbl
1105+ {
1106+ BEGIN_INTERFACE
1107+
1108+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1109+ IScriptControl * This,
1110+ /* [in] */ REFIID riid,
1111+ /* [annotation][iid_is][out] */
1112+ __RPC__deref_out void **ppvObject);
1113+
1114+ ULONG ( STDMETHODCALLTYPE *AddRef )(
1115+ IScriptControl * This);
1116+
1117+ ULONG ( STDMETHODCALLTYPE *Release )(
1118+ IScriptControl * This);
1119+
1120+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
1121+ IScriptControl * This,
1122+ /* [out] */ UINT *pctinfo);
1123+
1124+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
1125+ IScriptControl * This,
1126+ /* [in] */ UINT iTInfo,
1127+ /* [in] */ LCID lcid,
1128+ /* [out] */ ITypeInfo **ppTInfo);
1129+
1130+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
1131+ IScriptControl * This,
1132+ /* [in] */ REFIID riid,
1133+ /* [size_is][in] */ LPOLESTR *rgszNames,
1134+ /* [range][in] */ UINT cNames,
1135+ /* [in] */ LCID lcid,
1136+ /* [size_is][out] */ DISPID *rgDispId);
1137+
1138+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
1139+ IScriptControl * This,
1140+ /* [in] */ DISPID dispIdMember,
1141+ /* [in] */ REFIID riid,
1142+ /* [in] */ LCID lcid,
1143+ /* [in] */ WORD wFlags,
1144+ /* [out][in] */ DISPPARAMS *pDispParams,
1145+ /* [out] */ VARIANT *pVarResult,
1146+ /* [out] */ EXCEPINFO *pExcepInfo,
1147+ /* [out] */ UINT *puArgErr);
1148+
1149+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Language )(
1150+ IScriptControl * This,
1151+ /* [retval][out] */ BSTR *pbstrLanguage);
1152+
1153+ /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Language )(
1154+ IScriptControl * This,
1155+ /* [in] */ BSTR pbstrLanguage);
1156+
1157+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_State )(
1158+ IScriptControl * This,
1159+ /* [retval][out] */ ScriptControlStates *pssState);
1160+
1161+ /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_State )(
1162+ IScriptControl * This,
1163+ /* [in] */ ScriptControlStates pssState);
1164+
1165+ /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SitehWnd )(
1166+ IScriptControl * This,
1167+ /* [in] */ long phwnd);
1168+
1169+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SitehWnd )(
1170+ IScriptControl * This,
1171+ /* [retval][out] */ long *phwnd);
1172+
1173+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Timeout )(
1174+ IScriptControl * This,
1175+ /* [retval][out] */ long *plMilleseconds);
1176+
1177+ /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Timeout )(
1178+ IScriptControl * This,
1179+ /* [in] */ long plMilleseconds);
1180+
1181+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AllowUI )(
1182+ IScriptControl * This,
1183+ /* [retval][out] */ VARIANT_BOOL *pfAllowUI);
1184+
1185+ /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AllowUI )(
1186+ IScriptControl * This,
1187+ /* [in] */ VARIANT_BOOL pfAllowUI);
1188+
1189+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UseSafeSubset )(
1190+ IScriptControl * This,
1191+ /* [retval][out] */ VARIANT_BOOL *pfUseSafeSubset);
1192+
1193+ /* [helpcontext][helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UseSafeSubset )(
1194+ IScriptControl * This,
1195+ /* [in] */ VARIANT_BOOL pfUseSafeSubset);
1196+
1197+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Modules )(
1198+ IScriptControl * This,
1199+ /* [retval][out] */ IScriptModuleCollection **ppmods);
1200+
1201+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Error )(
1202+ IScriptControl * This,
1203+ /* [retval][out] */ IScriptError **ppse);
1204+
1205+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CodeObject )(
1206+ IScriptControl * This,
1207+ /* [retval][out] */ IDispatch **ppdispObject);
1208+
1209+ /* [helpcontext][helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Procedures )(
1210+ IScriptControl * This,
1211+ /* [retval][out] */ IScriptProcedureCollection **ppdispProcedures);
1212+
1213+ /* [hidden][id] */ HRESULT ( STDMETHODCALLTYPE *_AboutBox )(
1214+ IScriptControl * This);
1215+
1216+ /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddObject )(
1217+ IScriptControl * This,
1218+ /* [in] */ BSTR Name,
1219+ /* [in] */ IDispatch *Object,
1220+ /* [defaultvalue][optional][in] */ VARIANT_BOOL AddMembers);
1221+
1222+ /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Reset )(
1223+ IScriptControl * This);
1224+
1225+ /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCode )(
1226+ IScriptControl * This,
1227+ /* [in] */ BSTR Code);
1228+
1229+ /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Eval )(
1230+ IScriptControl * This,
1231+ /* [in] */ BSTR Expression,
1232+ /* [retval][out] */ VARIANT *pvarResult);
1233+
1234+ /* [helpcontext][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ExecuteStatement )(
1235+ IScriptControl * This,
1236+ /* [in] */ BSTR Statement);
1237+
1238+ /* [helpcontext][helpstring][vararg][id] */ HRESULT ( STDMETHODCALLTYPE *Run )(
1239+ IScriptControl * This,
1240+ /* [in] */ BSTR ProcedureName,
1241+ /* [in] */ SAFEARRAY * *Parameters,
1242+ /* [retval][out] */ VARIANT *pvarResult);
1243+
1244+ END_INTERFACE
1245+ } IScriptControlVtbl;
1246+
1247+ interface IScriptControl
1248+ {
1249+ CONST_VTBL struct IScriptControlVtbl *lpVtbl;
1250+ };
1251+
1252+
1253+
1254+#ifdef COBJMACROS
1255+
1256+
1257+#define IScriptControl_QueryInterface(This,riid,ppvObject) \
1258+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1259+
1260+#define IScriptControl_AddRef(This) \
1261+ ( (This)->lpVtbl -> AddRef(This) )
1262+
1263+#define IScriptControl_Release(This) \
1264+ ( (This)->lpVtbl -> Release(This) )
1265+
1266+
1267+#define IScriptControl_GetTypeInfoCount(This,pctinfo) \
1268+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
1269+
1270+#define IScriptControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
1271+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
1272+
1273+#define IScriptControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
1274+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
1275+
1276+#define IScriptControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
1277+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
1278+
1279+
1280+#define IScriptControl_get_Language(This,pbstrLanguage) \
1281+ ( (This)->lpVtbl -> get_Language(This,pbstrLanguage) )
1282+
1283+#define IScriptControl_put_Language(This,pbstrLanguage) \
1284+ ( (This)->lpVtbl -> put_Language(This,pbstrLanguage) )
1285+
1286+#define IScriptControl_get_State(This,pssState) \
1287+ ( (This)->lpVtbl -> get_State(This,pssState) )
1288+
1289+#define IScriptControl_put_State(This,pssState) \
1290+ ( (This)->lpVtbl -> put_State(This,pssState) )
1291+
1292+#define IScriptControl_put_SitehWnd(This,phwnd) \
1293+ ( (This)->lpVtbl -> put_SitehWnd(This,phwnd) )
1294+
1295+#define IScriptControl_get_SitehWnd(This,phwnd) \
1296+ ( (This)->lpVtbl -> get_SitehWnd(This,phwnd) )
1297+
1298+#define IScriptControl_get_Timeout(This,plMilleseconds) \
1299+ ( (This)->lpVtbl -> get_Timeout(This,plMilleseconds) )
1300+
1301+#define IScriptControl_put_Timeout(This,plMilleseconds) \
1302+ ( (This)->lpVtbl -> put_Timeout(This,plMilleseconds) )
1303+
1304+#define IScriptControl_get_AllowUI(This,pfAllowUI) \
1305+ ( (This)->lpVtbl -> get_AllowUI(This,pfAllowUI) )
1306+
1307+#define IScriptControl_put_AllowUI(This,pfAllowUI) \
1308+ ( (This)->lpVtbl -> put_AllowUI(This,pfAllowUI) )
1309+
1310+#define IScriptControl_get_UseSafeSubset(This,pfUseSafeSubset) \
1311+ ( (This)->lpVtbl -> get_UseSafeSubset(This,pfUseSafeSubset) )
1312+
1313+#define IScriptControl_put_UseSafeSubset(This,pfUseSafeSubset) \
1314+ ( (This)->lpVtbl -> put_UseSafeSubset(This,pfUseSafeSubset) )
1315+
1316+#define IScriptControl_get_Modules(This,ppmods) \
1317+ ( (This)->lpVtbl -> get_Modules(This,ppmods) )
1318+
1319+#define IScriptControl_get_Error(This,ppse) \
1320+ ( (This)->lpVtbl -> get_Error(This,ppse) )
1321+
1322+#define IScriptControl_get_CodeObject(This,ppdispObject) \
1323+ ( (This)->lpVtbl -> get_CodeObject(This,ppdispObject) )
1324+
1325+#define IScriptControl_get_Procedures(This,ppdispProcedures) \
1326+ ( (This)->lpVtbl -> get_Procedures(This,ppdispProcedures) )
1327+
1328+#define IScriptControl__AboutBox(This) \
1329+ ( (This)->lpVtbl -> _AboutBox(This) )
1330+
1331+#define IScriptControl_AddObject(This,Name,Object,AddMembers) \
1332+ ( (This)->lpVtbl -> AddObject(This,Name,Object,AddMembers) )
1333+
1334+#define IScriptControl_Reset(This) \
1335+ ( (This)->lpVtbl -> Reset(This) )
1336+
1337+#define IScriptControl_AddCode(This,Code) \
1338+ ( (This)->lpVtbl -> AddCode(This,Code) )
1339+
1340+#define IScriptControl_Eval(This,Expression,pvarResult) \
1341+ ( (This)->lpVtbl -> Eval(This,Expression,pvarResult) )
1342+
1343+#define IScriptControl_ExecuteStatement(This,Statement) \
1344+ ( (This)->lpVtbl -> ExecuteStatement(This,Statement) )
1345+
1346+#define IScriptControl_Run(This,ProcedureName,Parameters,pvarResult) \
1347+ ( (This)->lpVtbl -> Run(This,ProcedureName,Parameters,pvarResult) )
1348+
1349+#endif /* COBJMACROS */
1350+
1351+
1352+#endif /* C style interface */
1353+
1354+
1355+
1356+
1357+#endif /* __IScriptControl_INTERFACE_DEFINED__ */
1358+
1359+
1360+#ifndef __DScriptControlSource_DISPINTERFACE_DEFINED__
1361+#define __DScriptControlSource_DISPINTERFACE_DEFINED__
1362+
1363+/* dispinterface DScriptControlSource */
1364+/* [hidden][uuid] */
1365+
1366+
1367+EXTERN_C const IID DIID_DScriptControlSource;
1368+
1369+#if defined(__cplusplus) && !defined(CINTERFACE)
1370+
1371+ MIDL_INTERFACE("8B167D60-8605-11D0-ABCB-00A0C90FFFC0")
1372+ DScriptControlSource : public IDispatch
1373+ {
1374+ };
1375+
1376+#else /* C style interface */
1377+
1378+ typedef struct DScriptControlSourceVtbl
1379+ {
1380+ BEGIN_INTERFACE
1381+
1382+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1383+ DScriptControlSource * This,
1384+ /* [in] */ REFIID riid,
1385+ /* [annotation][iid_is][out] */
1386+ __RPC__deref_out void **ppvObject);
1387+
1388+ ULONG ( STDMETHODCALLTYPE *AddRef )(
1389+ DScriptControlSource * This);
1390+
1391+ ULONG ( STDMETHODCALLTYPE *Release )(
1392+ DScriptControlSource * This);
1393+
1394+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
1395+ DScriptControlSource * This,
1396+ /* [out] */ UINT *pctinfo);
1397+
1398+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
1399+ DScriptControlSource * This,
1400+ /* [in] */ UINT iTInfo,
1401+ /* [in] */ LCID lcid,
1402+ /* [out] */ ITypeInfo **ppTInfo);
1403+
1404+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
1405+ DScriptControlSource * This,
1406+ /* [in] */ REFIID riid,
1407+ /* [size_is][in] */ LPOLESTR *rgszNames,
1408+ /* [range][in] */ UINT cNames,
1409+ /* [in] */ LCID lcid,
1410+ /* [size_is][out] */ DISPID *rgDispId);
1411+
1412+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
1413+ DScriptControlSource * This,
1414+ /* [in] */ DISPID dispIdMember,
1415+ /* [in] */ REFIID riid,
1416+ /* [in] */ LCID lcid,
1417+ /* [in] */ WORD wFlags,
1418+ /* [out][in] */ DISPPARAMS *pDispParams,
1419+ /* [out] */ VARIANT *pVarResult,
1420+ /* [out] */ EXCEPINFO *pExcepInfo,
1421+ /* [out] */ UINT *puArgErr);
1422+
1423+ END_INTERFACE
1424+ } DScriptControlSourceVtbl;
1425+
1426+ interface DScriptControlSource
1427+ {
1428+ CONST_VTBL struct DScriptControlSourceVtbl *lpVtbl;
1429+ };
1430+
1431+
1432+
1433+#ifdef COBJMACROS
1434+
1435+
1436+#define DScriptControlSource_QueryInterface(This,riid,ppvObject) \
1437+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1438+
1439+#define DScriptControlSource_AddRef(This) \
1440+ ( (This)->lpVtbl -> AddRef(This) )
1441+
1442+#define DScriptControlSource_Release(This) \
1443+ ( (This)->lpVtbl -> Release(This) )
1444+
1445+
1446+#define DScriptControlSource_GetTypeInfoCount(This,pctinfo) \
1447+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
1448+
1449+#define DScriptControlSource_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
1450+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
1451+
1452+#define DScriptControlSource_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
1453+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
1454+
1455+#define DScriptControlSource_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
1456+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
1457+
1458+#endif /* COBJMACROS */
1459+
1460+
1461+#endif /* C style interface */
1462+
1463+
1464+#endif /* __DScriptControlSource_DISPINTERFACE_DEFINED__ */
1465+
1466+
1467+
1468+#ifndef __ScriptControlConstants_MODULE_DEFINED__
1469+#define __ScriptControlConstants_MODULE_DEFINED__
1470+
1471+
1472+/* module ScriptControlConstants */
1473+/* [helpcontext][helpstring][uuid][dllname] */
1474+
1475+/* [helpcontext][helpstring] */ const LPSTR GlobalModule = "Global";
1476+
1477+/* [helpcontext][helpstring] */ const long NoTimeout = 0xffffffff;
1478+
1479+#endif /* __ScriptControlConstants_MODULE_DEFINED__ */
1480+
1481+EXTERN_C const CLSID CLSID_Procedure;
1482+
1483+#ifdef __cplusplus
1484+
1485+class DECLSPEC_UUID("0E59F1DA-1FBE-11D0-8FF2-00A0D10038BC")
1486+Procedure;
1487+#endif
1488+
1489+EXTERN_C const CLSID CLSID_Procedures;
1490+
1491+#ifdef __cplusplus
1492+
1493+class DECLSPEC_UUID("0E59F1DB-1FBE-11D0-8FF2-00A0D10038BC")
1494+Procedures;
1495+#endif
1496+
1497+EXTERN_C const CLSID CLSID_Module;
1498+
1499+#ifdef __cplusplus
1500+
1501+class DECLSPEC_UUID("0E59F1DC-1FBE-11D0-8FF2-00A0D10038BC")
1502+Module;
1503+#endif
1504+
1505+EXTERN_C const CLSID CLSID_Modules;
1506+
1507+#ifdef __cplusplus
1508+
1509+class DECLSPEC_UUID("0E59F1DD-1FBE-11D0-8FF2-00A0D10038BC")
1510+Modules;
1511+#endif
1512+
1513+EXTERN_C const CLSID CLSID_Error;
1514+
1515+#ifdef __cplusplus
1516+
1517+class DECLSPEC_UUID("0E59F1DE-1FBE-11D0-8FF2-00A0D10038BC")
1518+Error;
1519+#endif
1520+
1521+EXTERN_C const CLSID CLSID_ScriptControl;
1522+
1523+#ifdef __cplusplus
1524+
1525+class DECLSPEC_UUID("0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC")
1526+ScriptControl;
1527+#endif
1528+#endif /* __MSScriptControl_LIBRARY_DEFINED__ */
1529+
1530+/* Additional Prototypes for ALL interfaces */
1531+
1532+/* end of Additional Prototypes */
1533+
1534+#ifdef __cplusplus
1535+}
1536+#endif
1537+
1538+#endif
1539+
1540+
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/vssjscript.cpp (nonexistent)
+++ trunk/vssjscript.cpp (revision 4)
@@ -0,0 +1,125 @@
1+#define WIN32_LEAN_AND_MEAN
2+
3+#include <windows.h>
4+#include "vssjscript.h"
5+
6+const int _IID_IVSSEventHandler = 0;
7+
8+
9+unsigned long sever_count = 0;
10+
11+HRESULT __stdcall DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv) try {
12+ if (!ppv) throw E_POINTER;
13+ if (!::IsEqualCLSID(rclsid, CLSID_JsEventHandlerClass)) throw CLASS_E_CLASSNOTAVAILABLE;
14+
15+ JsEventHandlerClass *instance = new JsEventHandlerClass;
16+} catch (HRESULT hr) {
17+ return hr;
18+} catch (...) {
19+ return E_UNEXPECTED;
20+}
21+
22+HRESULT __stdcall DllCanUnloadNow() {
23+ return (sever_count == 0) ? S_OK : S_FALSE;
24+}
25+
26+// JsEventHandler
27+
28+JsEventHandler::~JsEventHandler(void) { }
29+
30+HRESULT __stdcall JsEventHandler::QueryInterface(REFIID riid, void **ppv) try {
31+ if (!ppv) throw E_POINTER;
32+ *ppv = 0;
33+ if (::IsEqualIID(riid, IID_IUnknown)) {
34+ *ppv = static_cast<IUnknown *>(this);
35+ } else if (::IsEqualIID(riid, IID_IVSSEventHandler)) {
36+ *ppv = static_cast<IVSSEventHandler *>(this);
37+ } else {
38+ throw E_NOINTERFACE;
39+ }
40+ this->AddRef();
41+ return S_OK;
42+} catch (HRESULT hr) {
43+ return hr;
44+} catch (...) {
45+ return E_UNEXPECTED;
46+}
47+
48+ULONG __stdcall JsEventHandler::AddRef(void) {
49+ ::InterlockedIncrement(&sever_count);
50+ return ::InterlockedIncrement(&count);
51+}
52+
53+ULONG __stdcall JsEventHandler::Release(void) {
54+ ULONG r = ::InterlockedDecrement(&count);
55+ if (r == 0) delete this;
56+ ::InterlockedDecrement(&sever_count);
57+ return r;
58+}
59+
60+HRESULT __stdcall JsEventHandler::Init(IVSS *pIVSS) try {
61+ VSS.Attach(pIVSS, false);
62+ return S_OK;
63+} catch (HRESULT hr) {
64+ return hr;
65+} catch (...) {
66+ return E_UNEXPECTED;
67+}
68+
69+// JsEventHandlerClass
70+
71+JsEventHandlerClass::~JsEventHandlerClass(void) { }
72+
73+HRESULT __stdcall JsEventHandlerClass::QueryInterface(REFIID riid, void **ppv) try {
74+ if (!ppv) throw E_POINTER;
75+ *ppv = 0;
76+ if (::IsEqualIID(riid, IID_IUnknown)) {
77+ *ppv = static_cast<IUnknown *>(this);
78+ } else if (::IsEqualIID(riid, IID_IClassFactory)) {
79+ *ppv = static_cast<IClassFactory *>(this);
80+ } else {
81+ throw E_NOINTERFACE;
82+ }
83+ this->AddRef();
84+ return S_OK;
85+} catch (HRESULT hr) {
86+ return hr;
87+} catch (...) {
88+ return E_UNEXPECTED;
89+}
90+
91+ULONG __stdcall JsEventHandlerClass::AddRef(void) {
92+ ::InterlockedIncrement(&sever_count);
93+ return ::InterlockedIncrement(&count);
94+}
95+
96+ULONG __stdcall JsEventHandlerClass::Release(void) {
97+ ULONG r = ::InterlockedDecrement(&count);
98+ if (r == 0) delete this;
99+ ::InterlockedDecrement(&sever_count);
100+ return r;
101+}
102+
103+HRESULT __stdcall JsEventHandlerClass::CreateInstance(IUnknown *pUnkOuter, REFIID riid, void **ppv) try {
104+ if (!ppv) throw E_POINTER;
105+ *ppv = 0;
106+ if (pUnkOuter) throw CLASS_E_NOAGGREGATION;
107+ JsEventHandler *instance = new JsEventHandler();
108+ instance->AddRef();
109+ HRESULT hr = instance->QueryInterface(riid, ppv);
110+ instance->Release();
111+ return hr;
112+} catch (HRESULT hr) {
113+ return hr;
114+} catch (...) {
115+ return E_UNEXPECTED;
116+}
117+
118+HRESULT __stdcall JsEventHandlerClass::LockServer(BOOL fLock) try {
119+
120+ return S_OK;
121+} catch (HRESULT hr) {
122+ return hr;
123+} catch (...) {
124+ return E_UNEXPECTED;
125+}
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/registry.h (nonexistent)
+++ trunk/registry.h (revision 4)
@@ -0,0 +1,138 @@
1+#pragma once
2+
3+#if !defined(WIN32_LEAN_AND_MEAN)
4+# define WIN32_LEAN_AND_MEAN
5+#endif
6+#if !defined(VC_EXTRALEAN)
7+# define VC_EXTRALEAN
8+#endif
9+#if !defined(STRICT)
10+# define STRICT
11+#endif
12+
13+#include <windows.h>
14+
15+#include <string>
16+#include <list>
17+
18+struct Registry {
19+public:
20+ typedef std::basic_string<TCHAR> tstring;
21+ struct Error {
22+ const LONG Code;
23+ Error(LONG code) : Code(code) { }
24+ };
25+ struct Node {
26+ private:
27+ const HKEY hkey;
28+ const tstring subkey;
29+ const tstring name;
30+ const tstring value;
31+ const std::list<const Node> children;
32+ static std::list<const Node> makeChildren(const Node& c0) { std::list<const Node> r; r.push_back(c0); return r; }
33+ static std::list<const Node> makeChildren(const Node& c0, const Node& c1) { std::list<const Node> r; r.push_back(c0); r.push_back(c1); return r; }
34+ static std::list<const Node> makeChildren(const Node& c0, const Node& c1, const Node& c2) { std::list<const Node> r; r.push_back(c0); r.push_back(c1); r.push_back(c2); return r; }
35+ static std::list<const Node> makeChildren(const Node& c0, const Node& c1, const Node& c2, const Node& c3) { std::list<const Node> r; r.push_back(c0); r.push_back(c1); r.push_back(c2); r.push_back(c3); return r; }
36+ Node(const HKEY k, const tstring &s, const tstring &n, const tstring &v) : hkey(k), subkey(s), name(n), value(v) { }
37+ Node(const HKEY k, const tstring &s, const tstring &n, const tstring &v, const Node &c0) : hkey(k), subkey(s), name(n), value(v), children(makeChildren(c0)) { }
38+ Node(const HKEY k, const tstring &s, const tstring &n, const tstring &v, const Node &c0, const Node &c1) : hkey(k), subkey(s), name(n), value(v), children(makeChildren(c0, c1)) { }
39+ Node(const HKEY k, const tstring &s, const tstring &n, const tstring &v, const Node &c0, const Node &c1, const Node &c2) : hkey(k), subkey(s), name(n), value(v), children(makeChildren(c0, c1, c2)) { }
40+ Node(const HKEY k, const tstring &s, const tstring &n, const tstring &v, const Node &c0, const Node &c1, const Node &c2, const Node &c3) : hkey(k), subkey(s), name(n), value(v), children(makeChildren(c0, c1, c2, c3)) { }
41+ void Create(HKEY h) const {
42+ if (hkey != 0) {
43+ for (auto i = children.begin(); i != children.end(); ++i) {
44+ i->Create(hkey);
45+ }
46+ } else if (!subkey.empty()) {
47+ HKEY k;
48+ LONG r = ::RegCreateKeyEx(h, subkey.c_str(), 0, nullptr, 0, KEY_ALL_ACCESS, nullptr, &k, nullptr);
49+ if (r != ERROR_SUCCESS) throw Error(r);
50+ for (auto i = children.begin(); i != children.end(); ++i) {
51+ i->Create(k);
52+ }
53+ } else {
54+ LONG r = ::RegSetValueEx(h, name.c_str(), 0, REG_SZ, reinterpret_cast<const BYTE *>(value.c_str()), sizeof(TCHAR) * (value.length() + 1));
55+ if (r != ERROR_SUCCESS) throw Error(r);
56+ }
57+ }
58+ bool Delete(HKEY h) const throw() {
59+ if (hkey != 0) {
60+ bool f = true;
61+ for (auto i = children.begin(); i != children.end(); ++i) {
62+ if (!i->Delete(hkey)) f = false;
63+ }
64+ return f;
65+ } else if (!subkey.empty()) {
66+ if (children.size() > 0) {
67+ HKEY k;
68+ LONG r = ::RegOpenKeyEx(h, subkey.c_str(), 0, KEY_ALL_ACCESS, &k);
69+ if (r != ERROR_SUCCESS) return false;
70+ for (auto i = children.begin(); i != children.end(); ++i) {
71+ i->Delete(k);
72+ }
73+ ::RegCloseKey(k);
74+ }
75+ LONG r = ::RegDeleteKey(h, subkey.c_str());
76+ return r == ERROR_SUCCESS;
77+ } else {
78+ LONG r = ::RegDeleteValue(h, name.c_str());
79+ return r == ERROR_SUCCESS;
80+ }
81+ }
82+ friend Registry;
83+ };
84+ struct RootNode : Node {
85+ friend Registry;
86+ private:
87+ RootNode(Node &n) : Node(n) { }
88+ };
89+ struct KeyNode : Node {
90+ friend Registry;
91+ private:
92+ KeyNode(Node &n) : Node(n) { }
93+ };
94+ struct ValueNode : Node {
95+ friend Registry;
96+ private:
97+ ValueNode(Node &n) : Node(n) { }
98+ };
99+ static RootNode Root(HKEY hkey) { RootNode r(Node(hkey, tstring(), tstring(), tstring())); return r; }
100+ static RootNode Root(HKEY hkey, const KeyNode &c0) { RootNode r(Node(hkey, tstring(), tstring(), tstring(), c0)); return r; }
101+ static RootNode Root(HKEY hkey, const KeyNode &c0, const KeyNode &c1) { RootNode r(Node(hkey, tstring(), tstring(), tstring(), c0, c1)); return r; }
102+ static RootNode Root(HKEY hkey, const KeyNode &c0, const KeyNode &c1, const KeyNode &c2) { RootNode r(Node(hkey, tstring(), tstring(), tstring(), c0, c1, c2)); return r; }
103+ static RootNode Root(HKEY hkey, const KeyNode &c0, const KeyNode &c1, const KeyNode &c2, const KeyNode &c3) { RootNode r(Node(hkey, tstring(), tstring(), tstring(), c0, c1, c2, c3)); return r; }
104+ static KeyNode Key(const tstring &s) { RootNode r(Node(0, s, tstring(), tstring())); return r; }
105+ static KeyNode Key(const tstring &s, const KeyNode &c0) { RootNode r(Node(0, s, tstring(), tstring(), c0)); return r; }
106+ static KeyNode Key(const tstring &s, const ValueNode &c0) { RootNode r(Node(0, s, tstring(), tstring(), c0)); return r; }
107+ static KeyNode Key(const tstring &s, const KeyNode &c0, const KeyNode &c1) { RootNode r(Node(0, s, tstring(), tstring(), c0, c1)); return r; }
108+ static KeyNode Key(const tstring &s, const ValueNode &c0, const KeyNode &c1) { RootNode r(Node(0, s, tstring(), tstring(), c0, c1)); return r; }
109+ static KeyNode Key(const tstring &s, const ValueNode &c0, const ValueNode &c1) { RootNode r(Node(0, s, tstring(), tstring(), c0, c1)); return r; }
110+ static KeyNode Key(const tstring &s, const KeyNode &c0, const KeyNode &c1, const KeyNode &c2) { RootNode r(Node(0, s, tstring(), tstring(), c0, c1, c2)); return r; }
111+ static KeyNode Key(const tstring &s, const ValueNode &c0, const KeyNode &c1, const KeyNode &c2) { RootNode r(Node(0, s, tstring(), tstring(), c0, c1, c2)); return r; }
112+ static KeyNode Key(const tstring &s, const ValueNode &c0, const ValueNode &c1, const KeyNode &c2) { RootNode r(Node(0, s, tstring(), tstring(), c0, c1, c2)); return r; }
113+ static KeyNode Key(const tstring &s, const ValueNode &c0, const ValueNode &c1, const ValueNode &c2) { RootNode r(Node(0, s, tstring(), tstring(), c0, c1, c2)); return r; }
114+ static KeyNode Key(const tstring &s, const KeyNode &c0, const KeyNode &c1, const KeyNode &c2, const KeyNode &c3) { RootNode r(Node(0, s, tstring(), tstring(), c0, c1, c2, c3)); return r; }
115+ static KeyNode Key(const tstring &s, const ValueNode &c0, const KeyNode &c1, const KeyNode &c2, const KeyNode &c3) { RootNode r(Node(0, s, tstring(), tstring(), c0, c1, c2, c3)); return r; }
116+ static KeyNode Key(const tstring &s, const ValueNode &c0, const ValueNode &c1, const KeyNode &c2, const KeyNode &c3) { RootNode r(Node(0, s, tstring(), tstring(), c0, c1, c2, c3)); return r; }
117+ static KeyNode Key(const tstring &s, const ValueNode &c0, const ValueNode &c1, const ValueNode &c2, const KeyNode &c3) { RootNode r(Node(0, s, tstring(), tstring(), c0, c1, c2, c3)); return r; }
118+ static KeyNode Key(const tstring &s, const ValueNode &c0, const ValueNode &c1, const ValueNode &c2, const ValueNode &c3) { RootNode r(Node(0, s, tstring(), tstring(), c0, c1, c2, c3)); return r; }
119+ static ValueNode Value(const tstring &n, const tstring &v) { ValueNode r(Node(0, tstring(), n, v)); return r; }
120+ Registry(const RootNode& c0) : children(Node::makeChildren(c0)) { }
121+ Registry(const RootNode& c0, const RootNode& c1) : children(Node::makeChildren(c0, c1)) { }
122+ Registry(const RootNode& c0, const RootNode& c1, const RootNode& c2) : children(Node::makeChildren(c0, c1, c2)) { }
123+ Registry(const RootNode& c0, const RootNode& c1, const RootNode& c2, const RootNode& c3) : children(Node::makeChildren(c0, c1, c2, c3)) { }
124+ void Create(void) {
125+ for (auto i = children.begin(); i != children.end(); ++i) {
126+ i->Create(0);
127+ }
128+ }
129+ bool Delete(void) {
130+ bool f = true;
131+ for (auto i = children.begin(); i != children.end(); ++i) {
132+ if (!i->Delete(0)) f = false;
133+ }
134+ return f;
135+ }
136+private:
137+ const std::list<const Node> children;
138+};
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/comments.js (nonexistent)
+++ trunk/comments.js (revision 4)
@@ -0,0 +1,12 @@
1+function BeforeAdd(SrcSafeIni, UserName, Spec, VersionNumber, Local, Comment) { if (Comment == "") throw new Error("コメントを入力してください"); }
2+function AfterAdd(SrcSafeIni, UserName, Spec, VersionNumber, Local, Comment) { alert("Add: " + Spec + ";" + VersionNumber); }
3+// function BeforeCheckout(SrcSafeIni, UserName, Spec, VersionNumber, Local, Comment) { throw new Error("do not c/o."); }
4+function AfterCheckout(SrcSafeIni, UserName, Spec, VersionNumber, Local, Comment) { alert("C/o: " + Spec + ";" + VersionNumber); }
5+function BeforeCheckin(SrcSafeIni, UserName, Spec, VersionNumber, Local, Comment) { if (Comment == "") throw new Error("コメントを入力してください"); }
6+function AfterCheckin(SrcSafeIni, UserName, Spec, VersionNumber, Local, Comment) { alert("C/i: " + Spec + ";" + VersionNumber); }
7+// function BeforeUndoCheckout(SrcSafeIni, UserName, Spec, VersionNumber, Local) { throw new Error("do not undo."); }
8+function AfterUndoCheckout(SrcSafeIni, UserName, Spec, VersionNumber, Local) { alert("Undo: " + Spec + ";" + VersionNumber); }
9+// function BeforeRename(SrcSafeIni, UserName, Spec, VersionNumber, NewName) { throw new Error("do not rename."); }
10+function AfterRename(SrcSafeIni, UserName, Spec, VersionNumber, OldName) { alert("Rename: " + Spec + ";" + VersionNumber + " <= " + OldName); }
11+// function BeforeBranch(SrcSafeIni, UserName, Spec, VersionNumber, Comment) { throw new Error("do not branch."); }
12+function AfterBranch(SrcSafeIni, UserName, Spec, VersionNumber, Comment) { alert("Branch: " + Spec + ";" + VersionNumber); }
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/hinstance.h (nonexistent)
+++ trunk/hinstance.h (revision 4)
@@ -0,0 +1,15 @@
1+#pragma once
2+
3+#if !defined(WIN32_LEAN_AND_MEAN)
4+# define WIN32_LEAN_AND_MEAN
5+#endif
6+#if !defined(VC_EXTRALEAN)
7+# define VC_EXTRALEAN
8+#endif
9+#if !defined(STRICT)
10+# define STRICT
11+#endif
12+
13+#include <windows.h>
14+
15+extern HINSTANCE hInstance;
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/ssaddin.ini (nonexistent)
+++ trunk/ssaddin.ini (revision 4)
@@ -0,0 +1 @@
1+VSSJScript.EventHandler=1
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/vssjscript_i.c (nonexistent)
+++ trunk/vssjscript_i.c (revision 4)
@@ -0,0 +1,82 @@
1+
2+
3+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
4+
5+/* link this file in with the server and any clients */
6+
7+
8+ /* File created by MIDL compiler version 7.00.0555 */
9+/* at Mon Dec 26 19:04:08 2011
10+ */
11+/* Compiler settings for vssjscript.idl:
12+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
13+ protocol : dce , ms_ext, c_ext, robust
14+ error checks: allocation ref bounds_check enum stub_data
15+ VC __declspec() decoration level:
16+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
17+ DECLSPEC_UUID(), MIDL_INTERFACE()
18+*/
19+/* @@MIDL_FILE_HEADING( ) */
20+
21+#pragma warning( disable: 4049 ) /* more than 64k source lines */
22+
23+
24+#ifdef __cplusplus
25+extern "C"{
26+#endif
27+
28+
29+#include <rpc.h>
30+#include <rpcndr.h>
31+
32+#ifdef _MIDL_USE_GUIDDEF_
33+
34+#ifndef INITGUID
35+#define INITGUID
36+#include <guiddef.h>
37+#undef INITGUID
38+#else
39+#include <guiddef.h>
40+#endif
41+
42+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
43+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
44+
45+#else // !_MIDL_USE_GUIDDEF_
46+
47+#ifndef __IID_DEFINED__
48+#define __IID_DEFINED__
49+
50+typedef struct _IID
51+{
52+ unsigned long x;
53+ unsigned short s1;
54+ unsigned short s2;
55+ unsigned char c[8];
56+} IID;
57+
58+#endif // __IID_DEFINED__
59+
60+#ifndef CLSID_DEFINED
61+#define CLSID_DEFINED
62+typedef IID CLSID;
63+#endif // CLSID_DEFINED
64+
65+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
66+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
67+
68+#endif !_MIDL_USE_GUIDDEF_
69+
70+MIDL_DEFINE_GUID(IID, LIBID_VSSJScriptLib,0x3B3100C3,0xA561,0x4859,0xA0,0x51,0xEE,0xFD,0x29,0x2C,0xDF,0x92);
71+
72+
73+MIDL_DEFINE_GUID(CLSID, CLSID_EventHandler,0x78FF782A,0x867B,0x47E7,0xAD,0x93,0x03,0x07,0x49,0x70,0xAD,0xFC);
74+
75+#undef MIDL_DEFINE_GUID
76+
77+#ifdef __cplusplus
78+}
79+#endif
80+
81+
82+
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/EventHandler.h (nonexistent)
+++ trunk/EventHandler.h (revision 4)
@@ -0,0 +1,59 @@
1+#pragma once
2+
3+#include "StdAfx.h"
4+
5+#include <comdef.h>
6+#include <comip.h>
7+
8+#include "SSAPI.h"
9+#include "exception.h"
10+#include "unknown.h"
11+#include "EventHandlerImpl.h"
12+
13+class EventHandler : public IClassFactory, public UnknownImpl {
14+public:
15+ HRESULT __stdcall QueryInterface(REFIID riid, void **ppv) throw() try {
16+ if (!ppv) throw _com_error(E_POINTER);
17+ *ppv = nullptr;
18+ if (::IsEqualIID(riid, IID_IUnknown)) {
19+ *ppv = static_cast<IUnknown *>(this);
20+ } else if (::IsEqualIID(riid, IID_IClassFactory)) {
21+ *ppv = static_cast<IClassFactory *>(this);
22+ } else {
23+ throw _com_error(E_NOINTERFACE);
24+ }
25+ this->AddRef();
26+ return S_OK;
27+ } catch (_com_error &hr) {
28+ return hr.Error();
29+ } catch (...) {
30+ return E_UNEXPECTED;
31+ }
32+
33+ ULONG __stdcall AddRef(void) throw() { return UnknownImpl::AddRef(); }
34+
35+ ULONG __stdcall Release(void) throw() { return UnknownImpl::Release(); }
36+
37+ HRESULT __stdcall CreateInstance(IUnknown *pUnkOuter, REFIID riid, void **ppv) throw() try {
38+ if (!ppv) throw _com_error(E_POINTER);
39+ *ppv = nullptr;
40+ if (pUnkOuter) throw _com_error(CLASS_E_NOAGGREGATION);
41+ EventHandlerImpl *instance = new EventHandlerImpl();
42+ instance->AddRef();
43+ HRESULT hr = instance->QueryInterface(riid, ppv);
44+ instance->Release();
45+ return hr;
46+ } catch (_com_error &hr) {
47+ return hr.Error();
48+ } catch (...) {
49+ return E_UNEXPECTED;
50+ }
51+
52+ HRESULT __stdcall LockServer(BOOL fLock) throw() try {
53+ return S_OK;
54+ } catch (_com_error &hr) {
55+ return hr.Error();
56+ } catch (...) {
57+ return E_UNEXPECTED;
58+ }
59+};
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/EventsImpl.cpp (nonexistent)
+++ trunk/EventsImpl.cpp (revision 4)
@@ -0,0 +1,3 @@
1+#include "EventsImpl.h"
2+
3+const EventsImpl::Constant EventsImpl::CONSTANT;
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/SSAPI_i.c (nonexistent)
+++ trunk/SSAPI_i.c (revision 4)
@@ -0,0 +1,145 @@
1+
2+
3+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
4+
5+/* link this file in with the server and any clients */
6+
7+
8+ /* File created by MIDL compiler version 7.00.0555 */
9+/* at Fri Dec 23 17:09:42 2011
10+ */
11+/* Compiler settings for SSAPI.IDL:
12+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
13+ protocol : dce , ms_ext, c_ext, robust
14+ error checks: allocation ref bounds_check enum stub_data
15+ VC __declspec() decoration level:
16+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
17+ DECLSPEC_UUID(), MIDL_INTERFACE()
18+*/
19+/* @@MIDL_FILE_HEADING( ) */
20+
21+#pragma warning( disable: 4049 ) /* more than 64k source lines */
22+
23+
24+#ifdef __cplusplus
25+extern "C"{
26+#endif
27+
28+
29+#include <rpc.h>
30+#include <rpcndr.h>
31+
32+#ifdef _MIDL_USE_GUIDDEF_
33+
34+#ifndef INITGUID
35+#define INITGUID
36+#include <guiddef.h>
37+#undef INITGUID
38+#else
39+#include <guiddef.h>
40+#endif
41+
42+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
43+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
44+
45+#else // !_MIDL_USE_GUIDDEF_
46+
47+#ifndef __IID_DEFINED__
48+#define __IID_DEFINED__
49+
50+typedef struct _IID
51+{
52+ unsigned long x;
53+ unsigned short s1;
54+ unsigned short s2;
55+ unsigned char c[8];
56+} IID;
57+
58+#endif // __IID_DEFINED__
59+
60+#ifndef CLSID_DEFINED
61+#define CLSID_DEFINED
62+typedef IID CLSID;
63+#endif // CLSID_DEFINED
64+
65+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
66+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
67+
68+#endif !_MIDL_USE_GUIDDEF_
69+
70+MIDL_DEFINE_GUID(IID, LIBID_SourceSafeTypeLib,0x783CD4E0,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
71+
72+
73+MIDL_DEFINE_GUID(IID, IID_IVSSItemOld,0x783CD4E1,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
74+
75+
76+MIDL_DEFINE_GUID(IID, IID_IVSSItem,0x2A0DE0E7,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);
77+
78+
79+MIDL_DEFINE_GUID(IID, IID_IVSSItems,0x783CD4E5,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
80+
81+
82+MIDL_DEFINE_GUID(IID, IID_IVSSCheckouts,0x8903A770,0xF55F,0x11CF,0x92,0x27,0x00,0xAA,0x00,0xA1,0xEB,0x95);
83+
84+
85+MIDL_DEFINE_GUID(IID, IID_IVSSCheckout,0x783CD4E6,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
86+
87+
88+MIDL_DEFINE_GUID(IID, IID_IVSSVersions,0x783CD4E7,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
89+
90+
91+MIDL_DEFINE_GUID(IID, IID_IVSSVersionOld,0x783CD4E8,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
92+
93+
94+MIDL_DEFINE_GUID(IID, IID_IVSSVersion,0x2A0DE0E9,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);
95+
96+
97+MIDL_DEFINE_GUID(IID, IID_IVSSUsers,0x2A0DE0E4,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);
98+
99+
100+MIDL_DEFINE_GUID(IID, IID_IVSSUser,0x2A0DE0E3,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);
101+
102+
103+MIDL_DEFINE_GUID(IID, IID_IVSSDatabaseOld,0x783CD4E2,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
104+
105+
106+MIDL_DEFINE_GUID(IID, IID_IVSSDatabase,0x2A0DE0E2,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);
107+
108+
109+MIDL_DEFINE_GUID(IID, IID_IVSSEventsOld,0x783CD4E9,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
110+
111+
112+MIDL_DEFINE_GUID(IID, IID_IVSSEvents,0x2A0DE0E8,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);
113+
114+
115+MIDL_DEFINE_GUID(IID, IID_IVSS,0x783CD4EB,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
116+
117+
118+MIDL_DEFINE_GUID(IID, IID_IVSSEventHandler,0x783CD4EA,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
119+
120+
121+MIDL_DEFINE_GUID(CLSID, CLSID_VSSItem,0x783CD4E3,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
122+
123+
124+MIDL_DEFINE_GUID(CLSID, CLSID_VSSVersion,0x783CD4EC,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
125+
126+
127+MIDL_DEFINE_GUID(CLSID, CLSID_VSSCheckout,0x2A0DE0E0,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);
128+
129+
130+MIDL_DEFINE_GUID(CLSID, CLSID_VSSDatabase,0x783CD4E4,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
131+
132+
133+MIDL_DEFINE_GUID(CLSID, CLSID_VSSUser,0x2A0DE0E5,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);
134+
135+
136+MIDL_DEFINE_GUID(CLSID, CLSID_VSSApp,0x2A0DE0E1,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);
137+
138+#undef MIDL_DEFINE_GUID
139+
140+#ifdef __cplusplus
141+}
142+#endif
143+
144+
145+
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/infoz.h (nonexistent)
+++ trunk/infoz.h (revision 4)
@@ -0,0 +1,61 @@
1+#pragma once
2+
3+#include <string>
4+#include <list>
5+#include <sstream>
6+
7+inline void strcopy(const std::wstring &src, wchar_t *dst, size_t dstsize) {
8+ if (dstsize > 0) {
9+ wchar_t *p = dst;
10+ wchar_t *q = dst + dstsize - 1;
11+ for (auto i = src.begin(); (i != src.end()) && (p < q); ++i, ++p) {
12+ *p = *i;
13+ }
14+ *p = L'\0';
15+ }
16+}
17+
18+struct InfoList {
19+private:
20+ struct Mssg {
21+ const std::wstring text;
22+ unsigned int count;
23+ Mssg(std::wstring s) : text(s), count(1) { }
24+ };
25+ std::list<Mssg> mssgs;
26+
27+ std::wstring GetText(void) const {
28+ std::wostringstream result;
29+ for (auto i = mssgs.begin(); i != mssgs.end(); ++i) {
30+ if (!result.str().empty()) {
31+ result << L"\r\n";
32+ }
33+ result << i->text;
34+ if (i->count > 1) {
35+ result << L" x" << i->count;
36+ }
37+ }
38+ return result.str();
39+ }
40+public:
41+ const size_t MaxLength;
42+
43+ std::wstring AddText(std::wstring text) {
44+ if (text.empty()) {
45+ //
46+ } else if (mssgs.empty() || (mssgs.back().text != text)) {
47+ mssgs.push_back(Mssg(text));
48+ } else {
49+ ++(mssgs.back().count);
50+ }
51+ std::wstring result;
52+ while (!mssgs.empty()) {
53+ result = GetText();
54+ if (result.length() < MaxLength) return result;
55+ mssgs.pop_front();
56+ }
57+ return std::wstring();
58+ }
59+
60+ InfoList(size_t maxLength) : MaxLength(maxLength) { }
61+};
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/resource.h (nonexistent)
+++ trunk/resource.h (revision 4)
@@ -0,0 +1,4 @@
1+#ifndef IDC_STATIC
2+#define IDC_STATIC (-1)
3+#endif
4+
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/unknown.cpp (nonexistent)
+++ trunk/unknown.cpp (revision 4)
@@ -0,0 +1,3 @@
1+#include "unknown.h"
2+
3+unsigned long UnknownImpl::serverCount = 0;
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/candlelight.bat (nonexistent)
+++ trunk/candlelight.bat (revision 4)
@@ -0,0 +1,4 @@
1+set path=%path%;"%ProgramFiles%\Windows Installer XML v3.5\bin"
2+candle.exe vssjscript.wxs
3+light.exe -ext WixUIExtension -cultures:ja-jp vssjscript.wixobj
4+pause
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/exception.h (nonexistent)
+++ trunk/exception.h (revision 4)
@@ -0,0 +1,36 @@
1+#pragma once
2+
3+#if !defined(WIN32_LEAN_AND_MEAN)
4+# define WIN32_LEAN_AND_MEAN
5+#endif
6+#if !defined(VC_EXTRALEAN)
7+# define VC_EXTRALEAN
8+#endif
9+#if !defined(STRICT)
10+# define STRICT
11+#endif
12+
13+#include <windows.h>
14+#include <comdef.h>
15+
16+inline void _com_check(const HRESULT hr) { if (FAILED(hr)) throw _com_error(hr); }
17+
18+template<typename T> inline void _com_check(const HRESULT hr, T u) {
19+ if (FAILED(hr)) {
20+ _com_ptr_t<_com_IIID<ISupportErrorInfo, &IID_ISupportErrorInfo>> s;
21+ HRESULT h;
22+ h = u->QueryInterface(&s);
23+ if (FAILED(h)) throw _com_error(hr);
24+ h = s->InterfaceSupportsErrorInfo(u.GetIID());
25+ if (h != S_OK) throw _com_error(hr);
26+ _com_ptr_t<_com_IIID<IErrorInfo, &IID_IErrorInfo>> e;
27+ h = ::GetErrorInfo(0, &e);
28+ if (FAILED(h)) throw _com_error(hr);
29+ throw _com_error(hr, e.Detach());
30+ }
31+}
32+
33+struct _win32_error : _com_error {
34+ explicit _win32_error(const DWORD gle) throw () : _com_error(HRESULT_FROM_WIN32(gle)), GetLastError(gle) { }
35+ const DWORD GetLastError;
36+};
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/dll.cpp (nonexistent)
+++ trunk/dll.cpp (revision 4)
@@ -0,0 +1,82 @@
1+#include "StdAfx.h"
2+#include "EventHandler.h"
3+#include "vssjscript.h"
4+#include "registry.h"
5+#include "exception.h"
6+#include "unknown.h"
7+#include "hinstance.h"
8+
9+BOOL __stdcall DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) throw () {
10+ switch (dwReason) {
11+ case DLL_PROCESS_ATTACH:
12+ ::hInstance = hInstance;
13+ break;
14+ case DLL_THREAD_ATTACH:
15+ break;
16+ case DLL_THREAD_DETACH:
17+ break;
18+ case DLL_PROCESS_DETACH:
19+ ::hInstance = 0;
20+ break;
21+ }
22+ return TRUE;
23+}
24+
25+HRESULT __stdcall DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv) throw () try {
26+ if (!ppv) throw _com_error(E_POINTER);
27+ if (!::IsEqualCLSID(rclsid, CLSID_EventHandler)) throw _com_error(CLASS_E_CLASSNOTAVAILABLE);
28+ EventHandler *instance = new EventHandler;
29+ instance->AddRef();
30+ HRESULT hr = instance->QueryInterface(riid, ppv);
31+ instance->Release();
32+ return S_OK;
33+} catch (_com_error &hr) {
34+ return hr.Error();
35+} catch (...) {
36+ return E_UNEXPECTED;
37+}
38+
39+HRESULT __stdcall DllCanUnloadNow() throw () {
40+ return (UnknownImpl::ServerCount() == 0) ? S_OK : S_FALSE;
41+}
42+
43+Registry GetRegistry() {
44+
45+ TCHAR filename[MAX_PATH];
46+ if (!::GetModuleFileName(hInstance, filename, MAX_PATH)) throw _win32_error(::GetLastError());
47+
48+ return Registry(
49+ Registry::Root(HKEY_CLASSES_ROOT,
50+ Registry::Key(TEXT("CLSID\\{78FF782A-867B-47E7-AD93-03074970ADFC}"),
51+ Registry::Value(TEXT(""), TEXT("VSSJScript.EventHandler")),
52+ Registry::Key(TEXT("InprocServer32"),
53+ Registry::Value(TEXT(""), filename),
54+ Registry::Value(TEXT("ThreadingModel"), TEXT("Apartment"))),
55+ Registry::Key(TEXT("ProgID"),
56+ Registry::Value(TEXT(""), TEXT("VSSJScript.EventHandler"))))),
57+ Registry::Root(HKEY_CLASSES_ROOT,
58+ Registry::Key(TEXT("VSSJScript.EventHandler"),
59+ Registry::Value(TEXT(""), TEXT("VSSJScript.EventHandler")),
60+ Registry::Key(TEXT("CLSID"),
61+ Registry::Value(TEXT(""), TEXT("{78FF782A-867B-47E7-AD93-03074970ADFC}"))))));
62+}
63+
64+HRESULT __stdcall DllRegisterServer() throw () try {
65+ Registry r = GetRegistry();
66+ r.Create();
67+ return S_OK;
68+} catch (_com_error &hr) {
69+ return hr.Error();
70+} catch (...) {
71+ return E_UNEXPECTED;
72+}
73+
74+HRESULT __stdcall DllUnregisterServer(void) throw () try {
75+ Registry r = GetRegistry();
76+ r.Delete();
77+ return S_OK;
78+} catch (_com_error &hr) {
79+ return hr.Error();
80+} catch (...) {
81+ return E_UNEXPECTED;
82+}
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/msscript_i.c (nonexistent)
+++ trunk/msscript_i.c (revision 4)
@@ -0,0 +1,118 @@
1+
2+
3+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
4+
5+/* link this file in with the server and any clients */
6+
7+
8+ /* File created by MIDL compiler version 7.00.0555 */
9+/* at Fri Dec 23 17:09:02 2011
10+ */
11+/* Compiler settings for msscript.IDL:
12+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
13+ protocol : dce , ms_ext, c_ext, robust
14+ error checks: allocation ref bounds_check enum stub_data
15+ VC __declspec() decoration level:
16+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
17+ DECLSPEC_UUID(), MIDL_INTERFACE()
18+*/
19+/* @@MIDL_FILE_HEADING( ) */
20+
21+#pragma warning( disable: 4049 ) /* more than 64k source lines */
22+
23+
24+#ifdef __cplusplus
25+extern "C"{
26+#endif
27+
28+
29+#include <rpc.h>
30+#include <rpcndr.h>
31+
32+#ifdef _MIDL_USE_GUIDDEF_
33+
34+#ifndef INITGUID
35+#define INITGUID
36+#include <guiddef.h>
37+#undef INITGUID
38+#else
39+#include <guiddef.h>
40+#endif
41+
42+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
43+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
44+
45+#else // !_MIDL_USE_GUIDDEF_
46+
47+#ifndef __IID_DEFINED__
48+#define __IID_DEFINED__
49+
50+typedef struct _IID
51+{
52+ unsigned long x;
53+ unsigned short s1;
54+ unsigned short s2;
55+ unsigned char c[8];
56+} IID;
57+
58+#endif // __IID_DEFINED__
59+
60+#ifndef CLSID_DEFINED
61+#define CLSID_DEFINED
62+typedef IID CLSID;
63+#endif // CLSID_DEFINED
64+
65+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
66+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
67+
68+#endif !_MIDL_USE_GUIDDEF_
69+
70+MIDL_DEFINE_GUID(IID, LIBID_MSScriptControl,0x0E59F1D2,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);
71+
72+
73+MIDL_DEFINE_GUID(IID, IID_IScriptProcedure,0x70841C73,0x067D,0x11D0,0x95,0xD8,0x00,0xA0,0x24,0x63,0xAB,0x28);
74+
75+
76+MIDL_DEFINE_GUID(IID, IID_IScriptProcedureCollection,0x70841C71,0x067D,0x11D0,0x95,0xD8,0x00,0xA0,0x24,0x63,0xAB,0x28);
77+
78+
79+MIDL_DEFINE_GUID(IID, IID_IScriptModule,0x70841C70,0x067D,0x11D0,0x95,0xD8,0x00,0xA0,0x24,0x63,0xAB,0x28);
80+
81+
82+MIDL_DEFINE_GUID(IID, IID_IScriptModuleCollection,0x70841C6F,0x067D,0x11D0,0x95,0xD8,0x00,0xA0,0x24,0x63,0xAB,0x28);
83+
84+
85+MIDL_DEFINE_GUID(IID, IID_IScriptError,0x70841C78,0x067D,0x11D0,0x95,0xD8,0x00,0xA0,0x24,0x63,0xAB,0x28);
86+
87+
88+MIDL_DEFINE_GUID(IID, IID_IScriptControl,0x0E59F1D3,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);
89+
90+
91+MIDL_DEFINE_GUID(IID, DIID_DScriptControlSource,0x8B167D60,0x8605,0x11D0,0xAB,0xCB,0x00,0xA0,0xC9,0x0F,0xFF,0xC0);
92+
93+
94+MIDL_DEFINE_GUID(CLSID, CLSID_Procedure,0x0E59F1DA,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);
95+
96+
97+MIDL_DEFINE_GUID(CLSID, CLSID_Procedures,0x0E59F1DB,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);
98+
99+
100+MIDL_DEFINE_GUID(CLSID, CLSID_Module,0x0E59F1DC,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);
101+
102+
103+MIDL_DEFINE_GUID(CLSID, CLSID_Modules,0x0E59F1DD,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);
104+
105+
106+MIDL_DEFINE_GUID(CLSID, CLSID_Error,0x0E59F1DE,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);
107+
108+
109+MIDL_DEFINE_GUID(CLSID, CLSID_ScriptControl,0x0E59F1D5,0x1FBE,0x11D0,0x8F,0xF2,0x00,0xA0,0xD1,0x00,0x38,0xBC);
110+
111+#undef MIDL_DEFINE_GUID
112+
113+#ifdef __cplusplus
114+}
115+#endif
116+
117+
118+
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/hinstance.cpp (nonexistent)
+++ trunk/hinstance.cpp (revision 4)
@@ -0,0 +1,3 @@
1+#include "hinstance.h"
2+
3+HINSTANCE hInstance;
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/window.h (nonexistent)
+++ trunk/window.h (revision 4)
@@ -0,0 +1,110 @@
1+#pragma once
2+
3+#if !defined(WIN32_LEAN_AND_MEAN)
4+# define WIN32_LEAN_AND_MEAN
5+#endif
6+#if !defined(VC_EXTRALEAN)
7+# define VC_EXTRALEAN
8+#endif
9+#if !defined(STRICT)
10+# define STRICT
11+#endif
12+
13+#include <windows.h>
14+
15+#include "hinstance.h"
16+#include "exception.h"
17+
18+struct MessageWindow {
19+public:
20+ struct Listener {
21+ friend MessageWindow;
22+ protected:
23+ virtual LRESULT WindowProc(HWND h, UINT m, WPARAM w, LPARAM l) {
24+ return ::DefWindowProc(h, m, w, l);
25+ }
26+ };
27+
28+ MessageWindow() : handle(0), listener(nullptr) {
29+ Create();
30+ }
31+
32+ ~MessageWindow() {
33+ Destroy();
34+ }
35+
36+ HWND GetHandle(void) const { return handle; }
37+
38+ void SetListener(Listener *l) {
39+ listener = l;
40+ }
41+private:
42+ void Create(void) {
43+ Destroy();
44+ HINSTANCE instance = ::hInstance;
45+ ATOM a = RegisterClass(instance);
46+ handle = ::CreateWindowEx(
47+ 0,
48+ reinterpret_cast<LPCTSTR>(a),
49+ nullptr,
50+ WS_OVERLAPPEDWINDOW,
51+ 0, 0, 10, 10,
52+ 0 /* not HWND_MESSAGE, to receive "TaskbarCreated" message. */,
53+ 0,
54+ instance,
55+ this);
56+ if (handle == 0) throw _win32_error(::GetLastError());
57+ }
58+
59+ void Destroy(void) {
60+ listener = nullptr;
61+ if (handle != 0) {
62+ ::DestroyWindow(handle);
63+ handle = 0;
64+ }
65+ }
66+
67+ static ATOM RegisterClass(HINSTANCE instance) {
68+ static ATOM Atom = 0;
69+ if (Atom == 0) {
70+ WNDCLASSEX wc;
71+ wc.cbSize = sizeof(wc);
72+ wc.style = 0;
73+ wc.lpfnWndProc = WindowProc;
74+ wc.cbClsExtra = 0;
75+ wc.cbWndExtra = 0;
76+ wc.hInstance = instance;
77+ wc.hIcon = 0;
78+ wc.hCursor = ::LoadCursor(0, IDC_ARROW);
79+ wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
80+ wc.lpszMenuName = nullptr;
81+ wc.lpszClassName = TEXT("{134379A2-E9B7-4F20-BBCF-65965DBC6E42}");
82+ wc.hIconSm = 0;
83+ Atom = ::RegisterClassEx(&wc);
84+ if (Atom == 0) throw _win32_error(::GetLastError());
85+ }
86+ return Atom;
87+ }
88+
89+ static LRESULT __stdcall WindowProc(HWND h, UINT m, WPARAM w, LPARAM l) throw() {
90+ if (m == WM_CREATE) {
91+ ::SetLastError(0);
92+ LONG gwl = ::SetWindowLong(h, GWL_USERDATA, reinterpret_cast<LONG>(reinterpret_cast<CREATESTRUCT *>(l)->lpCreateParams));
93+ if (gwl == 0) {
94+ DWORD e = ::GetLastError();
95+ if (e != 0) return -1;
96+ }
97+ }
98+ LONG gwl = ::GetWindowLong(h, GWL_USERDATA);
99+ if (gwl != 0) {
100+ MessageWindow *This = reinterpret_cast<MessageWindow *>(gwl);
101+ if (This->listener) {
102+ return This->listener->WindowProc(h, m, w, l);
103+ }
104+ }
105+ return ::DefWindowProc(h, m, w, l);
106+ }
107+
108+ HWND handle;
109+ Listener *listener;
110+};
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/notify.h (nonexistent)
+++ trunk/notify.h (revision 4)
@@ -0,0 +1,49 @@
1+#pragma once
2+
3+#if !defined(WIN32_LEAN_AND_MEAN)
4+# define WIN32_LEAN_AND_MEAN
5+#endif
6+#if !defined(VC_EXTRALEAN)
7+# define VC_EXTRALEAN
8+#endif
9+#if !defined(STRICT)
10+# define STRICT
11+#endif
12+
13+#include <windows.h>
14+#include <shellapi.h>
15+
16+#include <string>
17+
18+#include "exception.h"
19+
20+struct NotifyArea {
21+private:
22+ NOTIFYICONDATA *notifyicondata;
23+public:
24+ NotifyArea(void) : notifyicondata(nullptr) { }
25+ ~NotifyArea(void) { ClearIcon(); }
26+ void ClearIcon(void) {
27+ if (notifyicondata) {
28+ ::Shell_NotifyIcon(NIM_DELETE, notifyicondata);
29+ }
30+ }
31+ void SetIcon(NOTIFYICONDATA *const n) {
32+ if (notifyicondata != n) {
33+ if (notifyicondata) {
34+ if (!::Shell_NotifyIcon(NIM_DELETE, notifyicondata)) {
35+ throw _win32_error(::GetLastError());
36+ }
37+ }
38+ if (n) {
39+ if (!::Shell_NotifyIcon(NIM_ADD, notifyicondata = n)) {
40+ throw _win32_error(::GetLastError());
41+ }
42+ }
43+ } else {
44+ if (!::Shell_NotifyIcon(NIM_MODIFY, notifyicondata)) {
45+ throw _win32_error(::GetLastError());
46+ }
47+ }
48+ }
49+};
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/vssjscript.h (nonexistent)
+++ trunk/vssjscript.h (revision 4)
@@ -0,0 +1,93 @@
1+
2+
3+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
4+
5+
6+ /* File created by MIDL compiler version 7.00.0555 */
7+/* at Mon Dec 26 19:04:08 2011
8+ */
9+/* Compiler settings for vssjscript.idl:
10+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
11+ protocol : dce , ms_ext, c_ext, robust
12+ error checks: allocation ref bounds_check enum stub_data
13+ VC __declspec() decoration level:
14+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
15+ DECLSPEC_UUID(), MIDL_INTERFACE()
16+*/
17+/* @@MIDL_FILE_HEADING( ) */
18+
19+#pragma warning( disable: 4049 ) /* more than 64k source lines */
20+
21+
22+/* verify that the <rpcndr.h> version is high enough to compile this file*/
23+#ifndef __REQUIRED_RPCNDR_H_VERSION__
24+#define __REQUIRED_RPCNDR_H_VERSION__ 475
25+#endif
26+
27+#include "rpc.h"
28+#include "rpcndr.h"
29+
30+#ifndef __RPCNDR_H_VERSION__
31+#error this stub requires an updated version of <rpcndr.h>
32+#endif // __RPCNDR_H_VERSION__
33+
34+
35+#ifndef __vssjscript_h__
36+#define __vssjscript_h__
37+
38+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
39+#pragma once
40+#endif
41+
42+/* Forward Declarations */
43+
44+#ifndef __EventHandler_FWD_DEFINED__
45+#define __EventHandler_FWD_DEFINED__
46+
47+#ifdef __cplusplus
48+typedef class EventHandler EventHandler;
49+#else
50+typedef struct EventHandler EventHandler;
51+#endif /* __cplusplus */
52+
53+#endif /* __EventHandler_FWD_DEFINED__ */
54+
55+
56+/* header files for imported files */
57+#include "SSAPI.h"
58+
59+#ifdef __cplusplus
60+extern "C"{
61+#endif
62+
63+
64+
65+#ifndef __VSSJScriptLib_LIBRARY_DEFINED__
66+#define __VSSJScriptLib_LIBRARY_DEFINED__
67+
68+/* library VSSJScriptLib */
69+/* [uuid] */
70+
71+
72+EXTERN_C const IID LIBID_VSSJScriptLib;
73+
74+EXTERN_C const CLSID CLSID_EventHandler;
75+
76+#ifdef __cplusplus
77+
78+class DECLSPEC_UUID("78FF782A-867B-47E7-AD93-03074970ADFC")
79+EventHandler;
80+#endif
81+#endif /* __VSSJScriptLib_LIBRARY_DEFINED__ */
82+
83+/* Additional Prototypes for ALL interfaces */
84+
85+/* end of Additional Prototypes */
86+
87+#ifdef __cplusplus
88+}
89+#endif
90+
91+#endif
92+
93+
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/safearray.h (nonexistent)
+++ trunk/safearray.h (revision 4)
@@ -0,0 +1,49 @@
1+#pragma once
2+
3+#if !defined(WIN32_LEAN_AND_MEAN)
4+# define WIN32_LEAN_AND_MEAN
5+#endif
6+#if !defined(VC_EXTRALEAN)
7+# define VC_EXTRALEAN
8+#endif
9+#if !defined(STRICT)
10+# define STRICT
11+#endif
12+
13+#include <windows.h>
14+#include <oleauto.h>
15+#include <comutil.h>
16+
17+#include "exception.h"
18+
19+struct SafeArray {
20+ template<typename T> SafeArray(T first, T last) : Data(::SafeArrayCreateVector(VT_VARIANT, 0, std::distance(first, last) + 1)) {
21+ try {
22+ AccessData ad(Data);
23+ VARIANT *p = static_cast<VARIANT *>(ad.Data);
24+ for (T i = first; i != last; ++i) {
25+ ::VariantCopy(p++, &_variant_t(*i).GetVARIANT());
26+ }
27+ } catch (...) {
28+ ::SafeArrayDestroy(Data);
29+ throw;
30+ }
31+ }
32+ ~SafeArray() { ::SafeArrayDestroy(Data); }
33+ SAFEARRAY *const Data;
34+private:
35+ SafeArray(const SafeArray &);
36+ struct AccessData {
37+ AccessData(SAFEARRAY *sa) : safearray(sa), Data(GetAddress(sa)) { }
38+ ~AccessData(void) { ::SafeArrayUnaccessData(safearray); }
39+ void *const Data;
40+ private:
41+ SAFEARRAY *const safearray;
42+ AccessData(const AccessData &);
43+ static void *GetAddress(SAFEARRAY *sa) {
44+ void *result;
45+ _com_check(::SafeArrayAccessData(sa, &result));
46+ return result;
47+ }
48+ };
49+};
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/jscript.h (nonexistent)
+++ trunk/jscript.h (revision 4)
@@ -0,0 +1,233 @@
1+#pragma once
2+
3+#include "StdAfx.h"
4+
5+#include <comdef.h>
6+#include <comip.h>
7+#include <comutil.h>
8+
9+#include <string>
10+#include <set>
11+#include <algorithm>
12+#include <iterator>
13+
14+#include "msscript.h"
15+#include "exception.h"
16+#include "safearray.h"
17+
18+struct JScript {
19+private:
20+ _com_ptr_t<_com_IIID<IScriptControl, &IID_IScriptControl>> scriptcontrol;
21+ std::set<const std::wstring> methods;
22+
23+private:
24+ template<typename T> void runScript(const std::wstring &name, T first, T last) {
25+ SafeArray sa(first, last);
26+ _variant_t result;
27+ SAFEARRAY *s = sa.Data;
28+ _com_check(scriptcontrol->Run(_bstr_t(name.c_str()), &s, result.GetAddress()), scriptcontrol);
29+ }
30+
31+public:
32+ JScript(void) {
33+ scriptcontrol.CreateInstance(CLSID_ScriptControl);
34+ _com_ptr_t<_com_IIID<ISupportErrorInfo, &IID_ISupportErrorInfo>> supportErrorInfo;
35+ scriptcontrol->QueryInterface(&supportErrorInfo);
36+ }
37+
38+ void Reset(const std::wstring &code, IDispatch *gloabl) {
39+ methods.clear();
40+ _com_check(scriptcontrol->put_Language(_bstr_t(L"JScript")));
41+ _com_check(scriptcontrol->Reset());
42+ _com_check(scriptcontrol->put_AllowUI(VARIANT_TRUE));
43+ _com_check(scriptcontrol->put_UseSafeSubset(VARIANT_FALSE));
44+ _com_check(scriptcontrol->AddCode(_bstr_t(code.c_str())));
45+ if (gloabl) {
46+ _com_check(scriptcontrol->AddObject(_bstr_t(L"vssjscript"), gloabl, VARIANT_TRUE));
47+ }
48+
49+ _com_ptr_t<_com_IIID<IScriptProcedureCollection, &IID_IScriptProcedureCollection>> p;
50+ _com_check(scriptcontrol->get_Procedures(&p));
51+ _com_ptr_t<_com_IIID<IUnknown, &IID_IUnknown>> u;
52+ _com_check(p->get__NewEnum(&u));
53+ _com_ptr_t<_com_IIID<IEnumVARIANT, &IID_IEnumVARIANT>> i;
54+ _com_check(u->QueryInterface(&i));
55+ _com_check(i->Reset());
56+ _variant_t o;
57+ while (S_OK == i->Next(1, o.GetAddress() , nullptr)) {
58+ _com_ptr_t<_com_IIID<IUnknown, &IID_IUnknown>> u(o);
59+ _com_ptr_t<_com_IIID<IScriptProcedure, &IID_IScriptProcedure>> p;
60+ _com_check(u->QueryInterface(&p));
61+ _bstr_t name;
62+ _com_check(p->get_Name(name.GetAddress()));
63+ methods.insert(name);
64+ }
65+ }
66+
67+ void Eval(const std::wstring &expression) {
68+ _variant_t result;
69+ _com_check(scriptcontrol->Eval(_bstr_t(expression.c_str()), result.GetAddress()), scriptcontrol);
70+ }
71+public:
72+ void BeforeAdd(const std::wstring &SrcSafeIni, const std::wstring &UserName, const std::wstring &Spec, const long VersionNumber, const std::wstring &Local, const std::wstring &Comment) {
73+ const std::wstring NAME = L"BeforeAdd";
74+ if (methods.find(NAME) == methods.end()) return;
75+ _variant_t p[] = {
76+ _variant_t(_bstr_t(SrcSafeIni.c_str())),
77+ _variant_t(_bstr_t(UserName.c_str())),
78+ _variant_t(_bstr_t(Spec.c_str())),
79+ _variant_t(VersionNumber),
80+ _variant_t(_bstr_t(Local.c_str())),
81+ _variant_t(_bstr_t(Comment.c_str())),
82+ };
83+ runScript(NAME, p, p + sizeof(p) / sizeof(p[0]));
84+ }
85+
86+ void AfterAdd(const std::wstring &SrcSafeIni, const std::wstring &UserName, const std::wstring &Spec, const long VersionNumber, const std::wstring &Local, const std::wstring &Comment) {
87+ const std::wstring NAME = L"AfterAdd";
88+ if (methods.find(NAME) == methods.end()) return;
89+ _variant_t p[] = {
90+ _variant_t(_bstr_t(SrcSafeIni.c_str())),
91+ _variant_t(_bstr_t(UserName.c_str())),
92+ _variant_t(_bstr_t(Spec.c_str())),
93+ _variant_t(VersionNumber),
94+ _variant_t(_bstr_t(Local.c_str())),
95+ _variant_t(_bstr_t(Comment.c_str())),
96+ };
97+ runScript(NAME, p, p + sizeof(p) / sizeof(p[0]));
98+ }
99+
100+ void BeforeCheckout(const std::wstring &SrcSafeIni, const std::wstring &UserName, const std::wstring &Spec, const long VersionNumber, const std::wstring &Local, const std::wstring &Comment) {
101+ const std::wstring NAME = L"BeforeCheckout";
102+ if (methods.find(NAME) == methods.end()) return;
103+ _variant_t p[] = {
104+ _variant_t(_bstr_t(SrcSafeIni.c_str())),
105+ _variant_t(_bstr_t(UserName.c_str())),
106+ _variant_t(_bstr_t(Spec.c_str())),
107+ _variant_t(VersionNumber),
108+ _variant_t(_bstr_t(Local.c_str())),
109+ _variant_t(_bstr_t(Comment.c_str())),
110+ };
111+ runScript(NAME, p, p + sizeof(p) / sizeof(p[0]));
112+ }
113+
114+ void AfterCheckout(const std::wstring &SrcSafeIni, const std::wstring &UserName, const std::wstring &Spec, const long VersionNumber, const std::wstring &Local, const std::wstring &Comment) {
115+ const std::wstring NAME = L"AfterCheckout";
116+ if (methods.find(NAME) == methods.end()) return;
117+ _variant_t p[] = {
118+ _variant_t(_bstr_t(SrcSafeIni.c_str())),
119+ _variant_t(_bstr_t(UserName.c_str())),
120+ _variant_t(_bstr_t(Spec.c_str())),
121+ _variant_t(VersionNumber),
122+ _variant_t(_bstr_t(Local.c_str())),
123+ _variant_t(_bstr_t(Comment.c_str())),
124+ };
125+ runScript(NAME, p, p + sizeof(p) / sizeof(p[0]));
126+ }
127+
128+ void BeforeCheckin(const std::wstring &SrcSafeIni, const std::wstring &UserName, const std::wstring &Spec, const long VersionNumber, const std::wstring &Local, const std::wstring &Comment) {
129+ const std::wstring NAME = L"BeforeCheckin";
130+ if (methods.find(NAME) == methods.end()) return;
131+ _variant_t p[] = {
132+ _variant_t(_bstr_t(SrcSafeIni.c_str())),
133+ _variant_t(_bstr_t(UserName.c_str())),
134+ _variant_t(_bstr_t(Spec.c_str())),
135+ _variant_t(VersionNumber),
136+ _variant_t(_bstr_t(Local.c_str())),
137+ _variant_t(_bstr_t(Comment.c_str())),
138+ };
139+ runScript(NAME, p, p + sizeof(p) / sizeof(p[0]));
140+ }
141+
142+ void AfterCheckin(const std::wstring &SrcSafeIni, const std::wstring &UserName, const std::wstring &Spec, const long VersionNumber, const std::wstring &Local, const std::wstring &Comment) {
143+ const std::wstring NAME = L"AfterCheckin";
144+ if (methods.find(NAME) == methods.end()) return;
145+ _variant_t p[] = {
146+ _variant_t(_bstr_t(SrcSafeIni.c_str())),
147+ _variant_t(_bstr_t(UserName.c_str())),
148+ _variant_t(_bstr_t(Spec.c_str())),
149+ _variant_t(VersionNumber),
150+ _variant_t(_bstr_t(Local.c_str())),
151+ _variant_t(_bstr_t(Comment.c_str())),
152+ };
153+ runScript(NAME, p, p + sizeof(p) / sizeof(p[0]));
154+ }
155+
156+ void BeforeUndoCheckout(const std::wstring &SrcSafeIni, const std::wstring &UserName, const std::wstring &Spec, const long VersionNumber, const std::wstring &Local) {
157+ const std::wstring NAME = L"BeforeUndoCheckout";
158+ if (methods.find(NAME) == methods.end()) return;
159+ _variant_t p[] = {
160+ _variant_t(_bstr_t(SrcSafeIni.c_str())),
161+ _variant_t(_bstr_t(UserName.c_str())),
162+ _variant_t(_bstr_t(Spec.c_str())),
163+ _variant_t(VersionNumber),
164+ _variant_t(_bstr_t(Local.c_str())),
165+ };
166+ runScript(NAME, p, p + sizeof(p) / sizeof(p[0]));
167+ }
168+
169+ void AfterUndoCheckout(const std::wstring &SrcSafeIni, const std::wstring &UserName, const std::wstring &Spec, const long VersionNumber, const std::wstring &Local) {
170+ const std::wstring NAME = L"AfterUndoCheckout";
171+ if (methods.find(NAME) == methods.end()) return;
172+ _variant_t p[] = {
173+ _variant_t(_bstr_t(SrcSafeIni.c_str())),
174+ _variant_t(_bstr_t(UserName.c_str())),
175+ _variant_t(_bstr_t(Spec.c_str())),
176+ _variant_t(VersionNumber),
177+ _variant_t(_bstr_t(Local.c_str())),
178+ };
179+ runScript(NAME, p, p + sizeof(p) / sizeof(p[0]));
180+ }
181+
182+ void BeforeRename(const std::wstring &SrcSafeIni, const std::wstring &UserName, const std::wstring &Spec, const long VersionNumber, const std::wstring &NewName) {
183+ const std::wstring NAME = L"BeforeRename";
184+ if (methods.find(NAME) == methods.end()) return;
185+ _variant_t p[] = {
186+ _variant_t(_bstr_t(SrcSafeIni.c_str())),
187+ _variant_t(_bstr_t(UserName.c_str())),
188+ _variant_t(_bstr_t(Spec.c_str())),
189+ _variant_t(VersionNumber),
190+ _variant_t(_bstr_t(NewName.c_str())),
191+ };
192+ runScript(NAME, p, p + sizeof(p) / sizeof(p[0]));
193+ }
194+
195+ void AfterRename(const std::wstring &SrcSafeIni, const std::wstring &UserName, const std::wstring &Spec, const long VersionNumber, const std::wstring &OldName) {
196+ const std::wstring NAME = L"AfterRename";
197+ if (methods.find(NAME) == methods.end()) return;
198+ _variant_t p[] = {
199+ _variant_t(_bstr_t(SrcSafeIni.c_str())),
200+ _variant_t(_bstr_t(UserName.c_str())),
201+ _variant_t(_bstr_t(Spec.c_str())),
202+ _variant_t(VersionNumber),
203+ _variant_t(_bstr_t(OldName.c_str())),
204+ };
205+ runScript(NAME, p, p + sizeof(p) / sizeof(p[0]));
206+ }
207+
208+ void BeforeBranch(const std::wstring &SrcSafeIni, const std::wstring &UserName, const std::wstring &Spec, const long VersionNumber, const std::wstring &Comment) {
209+ const std::wstring NAME = L"BeforeBranch";
210+ if (methods.find(NAME) == methods.end()) return;
211+ _variant_t p[] = {
212+ _variant_t(_bstr_t(SrcSafeIni.c_str())),
213+ _variant_t(_bstr_t(UserName.c_str())),
214+ _variant_t(_bstr_t(Spec.c_str())),
215+ _variant_t(VersionNumber),
216+ _variant_t(_bstr_t(Comment.c_str())),
217+ };
218+ runScript(NAME, p, p + sizeof(p) / sizeof(p[0]));
219+ }
220+
221+ void AfterBranch(const std::wstring &SrcSafeIni, const std::wstring &UserName, const std::wstring &Spec, const long VersionNumber, const std::wstring &Comment) {
222+ const std::wstring NAME = L"AfterBranch";
223+ if (methods.find(NAME) == methods.end()) return;
224+ _variant_t p[] = {
225+ _variant_t(_bstr_t(SrcSafeIni.c_str())),
226+ _variant_t(_bstr_t(UserName.c_str())),
227+ _variant_t(_bstr_t(Spec.c_str())),
228+ _variant_t(VersionNumber),
229+ _variant_t(_bstr_t(Comment.c_str())),
230+ };
231+ runScript(NAME, p, p + sizeof(p) / sizeof(p[0]));
232+ }
233+};
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/SSAPI.h (nonexistent)
+++ trunk/SSAPI.h (revision 4)
@@ -0,0 +1,3607 @@
1+
2+
3+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
4+
5+
6+ /* File created by MIDL compiler version 7.00.0555 */
7+/* at Fri Dec 23 17:09:42 2011
8+ */
9+/* Compiler settings for SSAPI.IDL:
10+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
11+ protocol : dce , ms_ext, c_ext, robust
12+ error checks: allocation ref bounds_check enum stub_data
13+ VC __declspec() decoration level:
14+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
15+ DECLSPEC_UUID(), MIDL_INTERFACE()
16+*/
17+/* @@MIDL_FILE_HEADING( ) */
18+
19+#pragma warning( disable: 4049 ) /* more than 64k source lines */
20+
21+
22+/* verify that the <rpcndr.h> version is high enough to compile this file*/
23+#ifndef __REQUIRED_RPCNDR_H_VERSION__
24+#define __REQUIRED_RPCNDR_H_VERSION__ 475
25+#endif
26+
27+#include "rpc.h"
28+#include "rpcndr.h"
29+
30+#ifndef __RPCNDR_H_VERSION__
31+#error this stub requires an updated version of <rpcndr.h>
32+#endif // __RPCNDR_H_VERSION__
33+
34+
35+#ifndef __SSAPI_h__
36+#define __SSAPI_h__
37+
38+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
39+#pragma once
40+#endif
41+
42+/* Forward Declarations */
43+
44+#ifndef __IVSSItemOld_FWD_DEFINED__
45+#define __IVSSItemOld_FWD_DEFINED__
46+typedef interface IVSSItemOld IVSSItemOld;
47+#endif /* __IVSSItemOld_FWD_DEFINED__ */
48+
49+
50+#ifndef __IVSSItem_FWD_DEFINED__
51+#define __IVSSItem_FWD_DEFINED__
52+typedef interface IVSSItem IVSSItem;
53+#endif /* __IVSSItem_FWD_DEFINED__ */
54+
55+
56+#ifndef __IVSSItems_FWD_DEFINED__
57+#define __IVSSItems_FWD_DEFINED__
58+typedef interface IVSSItems IVSSItems;
59+#endif /* __IVSSItems_FWD_DEFINED__ */
60+
61+
62+#ifndef __IVSSCheckouts_FWD_DEFINED__
63+#define __IVSSCheckouts_FWD_DEFINED__
64+typedef interface IVSSCheckouts IVSSCheckouts;
65+#endif /* __IVSSCheckouts_FWD_DEFINED__ */
66+
67+
68+#ifndef __IVSSCheckout_FWD_DEFINED__
69+#define __IVSSCheckout_FWD_DEFINED__
70+typedef interface IVSSCheckout IVSSCheckout;
71+#endif /* __IVSSCheckout_FWD_DEFINED__ */
72+
73+
74+#ifndef __IVSSVersions_FWD_DEFINED__
75+#define __IVSSVersions_FWD_DEFINED__
76+typedef interface IVSSVersions IVSSVersions;
77+#endif /* __IVSSVersions_FWD_DEFINED__ */
78+
79+
80+#ifndef __IVSSVersionOld_FWD_DEFINED__
81+#define __IVSSVersionOld_FWD_DEFINED__
82+typedef interface IVSSVersionOld IVSSVersionOld;
83+#endif /* __IVSSVersionOld_FWD_DEFINED__ */
84+
85+
86+#ifndef __IVSSVersion_FWD_DEFINED__
87+#define __IVSSVersion_FWD_DEFINED__
88+typedef interface IVSSVersion IVSSVersion;
89+#endif /* __IVSSVersion_FWD_DEFINED__ */
90+
91+
92+#ifndef __IVSSUsers_FWD_DEFINED__
93+#define __IVSSUsers_FWD_DEFINED__
94+typedef interface IVSSUsers IVSSUsers;
95+#endif /* __IVSSUsers_FWD_DEFINED__ */
96+
97+
98+#ifndef __IVSSUser_FWD_DEFINED__
99+#define __IVSSUser_FWD_DEFINED__
100+typedef interface IVSSUser IVSSUser;
101+#endif /* __IVSSUser_FWD_DEFINED__ */
102+
103+
104+#ifndef __IVSSDatabaseOld_FWD_DEFINED__
105+#define __IVSSDatabaseOld_FWD_DEFINED__
106+typedef interface IVSSDatabaseOld IVSSDatabaseOld;
107+#endif /* __IVSSDatabaseOld_FWD_DEFINED__ */
108+
109+
110+#ifndef __IVSSDatabase_FWD_DEFINED__
111+#define __IVSSDatabase_FWD_DEFINED__
112+typedef interface IVSSDatabase IVSSDatabase;
113+#endif /* __IVSSDatabase_FWD_DEFINED__ */
114+
115+
116+#ifndef __IVSSEventsOld_FWD_DEFINED__
117+#define __IVSSEventsOld_FWD_DEFINED__
118+typedef interface IVSSEventsOld IVSSEventsOld;
119+#endif /* __IVSSEventsOld_FWD_DEFINED__ */
120+
121+
122+#ifndef __IVSSEvents_FWD_DEFINED__
123+#define __IVSSEvents_FWD_DEFINED__
124+typedef interface IVSSEvents IVSSEvents;
125+#endif /* __IVSSEvents_FWD_DEFINED__ */
126+
127+
128+#ifndef __IVSS_FWD_DEFINED__
129+#define __IVSS_FWD_DEFINED__
130+typedef interface IVSS IVSS;
131+#endif /* __IVSS_FWD_DEFINED__ */
132+
133+
134+#ifndef __IVSSEventHandler_FWD_DEFINED__
135+#define __IVSSEventHandler_FWD_DEFINED__
136+typedef interface IVSSEventHandler IVSSEventHandler;
137+#endif /* __IVSSEventHandler_FWD_DEFINED__ */
138+
139+
140+#ifndef __VSSItem_FWD_DEFINED__
141+#define __VSSItem_FWD_DEFINED__
142+
143+#ifdef __cplusplus
144+typedef class VSSItem VSSItem;
145+#else
146+typedef struct VSSItem VSSItem;
147+#endif /* __cplusplus */
148+
149+#endif /* __VSSItem_FWD_DEFINED__ */
150+
151+
152+#ifndef __VSSVersion_FWD_DEFINED__
153+#define __VSSVersion_FWD_DEFINED__
154+
155+#ifdef __cplusplus
156+typedef class VSSVersion VSSVersion;
157+#else
158+typedef struct VSSVersion VSSVersion;
159+#endif /* __cplusplus */
160+
161+#endif /* __VSSVersion_FWD_DEFINED__ */
162+
163+
164+#ifndef __VSSCheckout_FWD_DEFINED__
165+#define __VSSCheckout_FWD_DEFINED__
166+
167+#ifdef __cplusplus
168+typedef class VSSCheckout VSSCheckout;
169+#else
170+typedef struct VSSCheckout VSSCheckout;
171+#endif /* __cplusplus */
172+
173+#endif /* __VSSCheckout_FWD_DEFINED__ */
174+
175+
176+#ifndef __VSSDatabase_FWD_DEFINED__
177+#define __VSSDatabase_FWD_DEFINED__
178+
179+#ifdef __cplusplus
180+typedef class VSSDatabase VSSDatabase;
181+#else
182+typedef struct VSSDatabase VSSDatabase;
183+#endif /* __cplusplus */
184+
185+#endif /* __VSSDatabase_FWD_DEFINED__ */
186+
187+
188+#ifndef __VSSUser_FWD_DEFINED__
189+#define __VSSUser_FWD_DEFINED__
190+
191+#ifdef __cplusplus
192+typedef class VSSUser VSSUser;
193+#else
194+typedef struct VSSUser VSSUser;
195+#endif /* __cplusplus */
196+
197+#endif /* __VSSUser_FWD_DEFINED__ */
198+
199+
200+#ifndef __VSSApp_FWD_DEFINED__
201+#define __VSSApp_FWD_DEFINED__
202+
203+#ifdef __cplusplus
204+typedef class VSSApp VSSApp;
205+#else
206+typedef struct VSSApp VSSApp;
207+#endif /* __cplusplus */
208+
209+#endif /* __VSSApp_FWD_DEFINED__ */
210+
211+
212+#ifdef __cplusplus
213+extern "C"{
214+#endif
215+
216+
217+
218+#ifndef __SourceSafeTypeLib_LIBRARY_DEFINED__
219+#define __SourceSafeTypeLib_LIBRARY_DEFINED__
220+
221+/* library SourceSafeTypeLib */
222+/* [custom][custom][custom][helpcontext][helpfile][helpstring][version][uuid] */
223+
224+
225+
226+
227+
228+
229+
230+
231+
232+
233+
234+
235+
236+
237+
238+
239+
240+typedef /* [public][helpstring][uuid] */ DECLSPEC_UUID("783CD4EF-9D54-11CF-B8EE-00608CC9A71F")
241+enum __MIDL___MIDL_itf_SSAPI_0000_0000_0001
242+ { VSSFLAG_USERRONO = 1,
243+ VSSFLAG_USERROYES = 2,
244+ VSSFLAG_TIMENOW = 4,
245+ VSSFLAG_TIMEMOD = 8,
246+ VSSFLAG_TIMEUPD = 12,
247+ VSSFLAG_EOLCR = 16,
248+ VSSFLAG_EOLLF = 32,
249+ VSSFLAG_EOLCRLF = 48,
250+ VSSFLAG_REPASK = 64,
251+ VSSFLAG_REPREPLACE = 128,
252+ VSSFLAG_REPSKIP = 192,
253+ VSSFLAG_REPMERGE = 256,
254+ VSSFLAG_CMPFULL = 512,
255+ VSSFLAG_CMPTIME = 1024,
256+ VSSFLAG_CMPCHKSUM = 1536,
257+ VSSFLAG_CMPFAIL = 2048,
258+ VSSFLAG_RECURSNO = 4096,
259+ VSSFLAG_RECURSYES = 8192,
260+ VSSFLAG_FORCEDIRNO = 16384,
261+ VSSFLAG_FORCEDIRYES = 32768,
262+ VSSFLAG_KEEPNO = 0x10000,
263+ VSSFLAG_KEEPYES = 0x20000,
264+ VSSFLAG_DELNO = 0x40000,
265+ VSSFLAG_DELYES = 0x80000,
266+ VSSFLAG_DELNOREPLACE = 0xc0000,
267+ VSSFLAG_BINTEST = 0x100000,
268+ VSSFLAG_BINBINARY = 0x200000,
269+ VSSFLAG_BINTEXT = 0x300000,
270+ VSSFLAG_DELTAYES = 0x400000,
271+ VSSFLAG_DELTANO = 0x800000,
272+ VSSFLAG_UPDASK = 0x1000000,
273+ VSSFLAG_UPDUPDATE = 0x2000000,
274+ VSSFLAG_UPDUNCH = 0x3000000,
275+ VSSFLAG_GETYES = 0x4000000,
276+ VSSFLAG_GETNO = 0x8000000,
277+ VSSFLAG_CHKEXCLUSIVEYES = 0x10000000,
278+ VSSFLAG_CHKEXCLUSIVENO = 0x20000000,
279+ VSSFLAG_HISTIGNOREFILES = 0x40000000
280+ } VSSFlags;
281+
282+typedef /* [public][helpstring][uuid] */ DECLSPEC_UUID("783CD4ED-9D54-11CF-B8EE-00608CC9A71F")
283+enum __MIDL___MIDL_itf_SSAPI_0000_0000_0002
284+ { VSSFILE_NOTCHECKEDOUT = 0,
285+ VSSFILE_CHECKEDOUT = 1,
286+ VSSFILE_CHECKEDOUT_ME = 2
287+ } VSSFileStatus;
288+
289+typedef /* [public][helpstring][uuid] */ DECLSPEC_UUID("783CD4EE-9D54-11CF-B8EE-00608CC9A71F")
290+enum __MIDL___MIDL_itf_SSAPI_0000_0000_0003
291+ { VSSITEM_PROJECT = 0,
292+ VSSITEM_FILE = 1
293+ } VSSItemType;
294+
295+typedef /* [public][helpstring][uuid] */ DECLSPEC_UUID("2A0DE0E6-2E9F-11D0-9236-00AA00A1EB95")
296+enum __MIDL___MIDL_itf_SSAPI_0000_0000_0004
297+ { VSSRIGHTS_READ = 1,
298+ VSSRIGHTS_CHKUPD = 2,
299+ VSSRIGHTS_ADDRENREM = 4,
300+ VSSRIGHTS_DESTROY = 8,
301+ VSSRIGHTS_ALL = 15,
302+ VSSRIGHTS_INHERITED = 16
303+ } VSSRights;
304+
305+
306+EXTERN_C const IID LIBID_SourceSafeTypeLib;
307+
308+#ifndef __IVSSItemOld_INTERFACE_DEFINED__
309+#define __IVSSItemOld_INTERFACE_DEFINED__
310+
311+/* interface IVSSItemOld */
312+/* [object][oleautomation][dual][helpstring][uuid] */
313+
314+
315+EXTERN_C const IID IID_IVSSItemOld;
316+
317+#if defined(__cplusplus) && !defined(CINTERFACE)
318+
319+ MIDL_INTERFACE("783CD4E1-9D54-11CF-B8EE-00608CC9A71F")
320+ IVSSItemOld : public IDispatch
321+ {
322+ public:
323+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Spec(
324+ /* [retval][out] */ BSTR *pSpec) = 0;
325+
326+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Binary(
327+ /* [retval][out] */ VARIANT_BOOL *pbBinary) = 0;
328+
329+ virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Binary(
330+ /* [in] */ VARIANT_BOOL pbBinary) = 0;
331+
332+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Deleted(
333+ /* [retval][out] */ VARIANT_BOOL *pbDeleted) = 0;
334+
335+ virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Deleted(
336+ /* [in] */ VARIANT_BOOL pbDeleted) = 0;
337+
338+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Type(
339+ /* [retval][out] */ int *piType) = 0;
340+
341+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LocalSpec(
342+ /* [retval][out] */ BSTR *pLocal) = 0;
343+
344+ virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_LocalSpec(
345+ /* [in] */ BSTR pLocal) = 0;
346+
347+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Name(
348+ /* [retval][out] */ BSTR *pName) = 0;
349+
350+ virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Name(
351+ /* [in] */ BSTR pName) = 0;
352+
353+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Parent(
354+ /* [retval][out] */ IVSSItem **ppIParent) = 0;
355+
356+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_VersionNumber(
357+ /* [retval][out] */ long *piVersion) = 0;
358+
359+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Items(
360+ /* [defaultvalue][optional][in] */ VARIANT_BOOL IncludeDeleted,
361+ /* [retval][out] */ IVSSItems **ppIItems) = 0;
362+
363+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE Get(
364+ /* [defaultvalue][optional][out][in] */ BSTR *Local = 0,
365+ /* [defaultvalue][optional][in] */ long iFlags = 0) = 0;
366+
367+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE Checkout(
368+ /* [defaultvalue][optional][in] */ BSTR Comment = L"",
369+ /* [defaultvalue][optional][in] */ BSTR Local = L"",
370+ /* [defaultvalue][optional][in] */ long iFlags = 0) = 0;
371+
372+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE Checkin(
373+ /* [defaultvalue][optional][in] */ BSTR Comment = L"",
374+ /* [defaultvalue][optional][in] */ BSTR Local = L"",
375+ /* [defaultvalue][optional][in] */ long iFlags = 0) = 0;
376+
377+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE UndoCheckout(
378+ /* [defaultvalue][optional][in] */ BSTR Local = L"",
379+ /* [defaultvalue][optional][in] */ long iFlags = 0) = 0;
380+
381+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_IsCheckedOut(
382+ /* [retval][out] */ long *piStatus) = 0;
383+
384+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Checkouts(
385+ /* [retval][out] */ IVSSCheckouts **ppICheckouts) = 0;
386+
387+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_IsDifferent(
388+ /* [defaultvalue][optional][in] */ BSTR Local,
389+ /* [retval][out] */ VARIANT_BOOL *pbDifferent) = 0;
390+
391+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE Add(
392+ /* [in] */ BSTR Local,
393+ /* [defaultvalue][optional][in] */ BSTR Comment,
394+ /* [defaultvalue][optional][in] */ long iFlags,
395+ /* [retval][out] */ IVSSItem **ppIItem) = 0;
396+
397+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE NewSubproject(
398+ /* [in] */ BSTR Name,
399+ /* [defaultvalue][optional][in] */ BSTR Comment,
400+ /* [retval][out] */ IVSSItem **ppIItem) = 0;
401+
402+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE Share(
403+ /* [in] */ IVSSItem *pIItem,
404+ /* [defaultvalue][optional][in] */ BSTR Comment = L"",
405+ /* [defaultvalue][optional][in] */ long iFlags = 0) = 0;
406+
407+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE Destroy( void) = 0;
408+
409+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE Move(
410+ /* [in] */ IVSSItem *pINewParent) = 0;
411+
412+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE Label(
413+ /* [in] */ BSTR Label,
414+ /* [defaultvalue][optional][in] */ BSTR Comment = L"") = 0;
415+
416+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Versions(
417+ /* [defaultvalue][optional][in] */ long iFlags,
418+ /* [retval][out] */ IVSSVersions **pIVersions) = 0;
419+
420+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Version(
421+ /* [optional][in] */ VARIANT Version,
422+ /* [retval][out] */ IVSSItem **ppIItem) = 0;
423+
424+ };
425+
426+#else /* C style interface */
427+
428+ typedef struct IVSSItemOldVtbl
429+ {
430+ BEGIN_INTERFACE
431+
432+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
433+ IVSSItemOld * This,
434+ /* [in] */ REFIID riid,
435+ /* [annotation][iid_is][out] */
436+ __RPC__deref_out void **ppvObject);
437+
438+ ULONG ( STDMETHODCALLTYPE *AddRef )(
439+ IVSSItemOld * This);
440+
441+ ULONG ( STDMETHODCALLTYPE *Release )(
442+ IVSSItemOld * This);
443+
444+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
445+ IVSSItemOld * This,
446+ /* [out] */ UINT *pctinfo);
447+
448+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
449+ IVSSItemOld * This,
450+ /* [in] */ UINT iTInfo,
451+ /* [in] */ LCID lcid,
452+ /* [out] */ ITypeInfo **ppTInfo);
453+
454+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
455+ IVSSItemOld * This,
456+ /* [in] */ REFIID riid,
457+ /* [size_is][in] */ LPOLESTR *rgszNames,
458+ /* [range][in] */ UINT cNames,
459+ /* [in] */ LCID lcid,
460+ /* [size_is][out] */ DISPID *rgDispId);
461+
462+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
463+ IVSSItemOld * This,
464+ /* [in] */ DISPID dispIdMember,
465+ /* [in] */ REFIID riid,
466+ /* [in] */ LCID lcid,
467+ /* [in] */ WORD wFlags,
468+ /* [out][in] */ DISPPARAMS *pDispParams,
469+ /* [out] */ VARIANT *pVarResult,
470+ /* [out] */ EXCEPINFO *pExcepInfo,
471+ /* [out] */ UINT *puArgErr);
472+
473+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Spec )(
474+ IVSSItemOld * This,
475+ /* [retval][out] */ BSTR *pSpec);
476+
477+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Binary )(
478+ IVSSItemOld * This,
479+ /* [retval][out] */ VARIANT_BOOL *pbBinary);
480+
481+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Binary )(
482+ IVSSItemOld * This,
483+ /* [in] */ VARIANT_BOOL pbBinary);
484+
485+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Deleted )(
486+ IVSSItemOld * This,
487+ /* [retval][out] */ VARIANT_BOOL *pbDeleted);
488+
489+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Deleted )(
490+ IVSSItemOld * This,
491+ /* [in] */ VARIANT_BOOL pbDeleted);
492+
493+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )(
494+ IVSSItemOld * This,
495+ /* [retval][out] */ int *piType);
496+
497+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LocalSpec )(
498+ IVSSItemOld * This,
499+ /* [retval][out] */ BSTR *pLocal);
500+
501+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LocalSpec )(
502+ IVSSItemOld * This,
503+ /* [in] */ BSTR pLocal);
504+
505+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
506+ IVSSItemOld * This,
507+ /* [retval][out] */ BSTR *pName);
508+
509+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )(
510+ IVSSItemOld * This,
511+ /* [in] */ BSTR pName);
512+
513+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )(
514+ IVSSItemOld * This,
515+ /* [retval][out] */ IVSSItem **ppIParent);
516+
517+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VersionNumber )(
518+ IVSSItemOld * This,
519+ /* [retval][out] */ long *piVersion);
520+
521+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Items )(
522+ IVSSItemOld * This,
523+ /* [defaultvalue][optional][in] */ VARIANT_BOOL IncludeDeleted,
524+ /* [retval][out] */ IVSSItems **ppIItems);
525+
526+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Get )(
527+ IVSSItemOld * This,
528+ /* [defaultvalue][optional][out][in] */ BSTR *Local,
529+ /* [defaultvalue][optional][in] */ long iFlags);
530+
531+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Checkout )(
532+ IVSSItemOld * This,
533+ /* [defaultvalue][optional][in] */ BSTR Comment,
534+ /* [defaultvalue][optional][in] */ BSTR Local,
535+ /* [defaultvalue][optional][in] */ long iFlags);
536+
537+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Checkin )(
538+ IVSSItemOld * This,
539+ /* [defaultvalue][optional][in] */ BSTR Comment,
540+ /* [defaultvalue][optional][in] */ BSTR Local,
541+ /* [defaultvalue][optional][in] */ long iFlags);
542+
543+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *UndoCheckout )(
544+ IVSSItemOld * This,
545+ /* [defaultvalue][optional][in] */ BSTR Local,
546+ /* [defaultvalue][optional][in] */ long iFlags);
547+
548+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsCheckedOut )(
549+ IVSSItemOld * This,
550+ /* [retval][out] */ long *piStatus);
551+
552+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Checkouts )(
553+ IVSSItemOld * This,
554+ /* [retval][out] */ IVSSCheckouts **ppICheckouts);
555+
556+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsDifferent )(
557+ IVSSItemOld * This,
558+ /* [defaultvalue][optional][in] */ BSTR Local,
559+ /* [retval][out] */ VARIANT_BOOL *pbDifferent);
560+
561+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Add )(
562+ IVSSItemOld * This,
563+ /* [in] */ BSTR Local,
564+ /* [defaultvalue][optional][in] */ BSTR Comment,
565+ /* [defaultvalue][optional][in] */ long iFlags,
566+ /* [retval][out] */ IVSSItem **ppIItem);
567+
568+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *NewSubproject )(
569+ IVSSItemOld * This,
570+ /* [in] */ BSTR Name,
571+ /* [defaultvalue][optional][in] */ BSTR Comment,
572+ /* [retval][out] */ IVSSItem **ppIItem);
573+
574+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Share )(
575+ IVSSItemOld * This,
576+ /* [in] */ IVSSItem *pIItem,
577+ /* [defaultvalue][optional][in] */ BSTR Comment,
578+ /* [defaultvalue][optional][in] */ long iFlags);
579+
580+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Destroy )(
581+ IVSSItemOld * This);
582+
583+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Move )(
584+ IVSSItemOld * This,
585+ /* [in] */ IVSSItem *pINewParent);
586+
587+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Label )(
588+ IVSSItemOld * This,
589+ /* [in] */ BSTR Label,
590+ /* [defaultvalue][optional][in] */ BSTR Comment);
591+
592+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Versions )(
593+ IVSSItemOld * This,
594+ /* [defaultvalue][optional][in] */ long iFlags,
595+ /* [retval][out] */ IVSSVersions **pIVersions);
596+
597+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )(
598+ IVSSItemOld * This,
599+ /* [optional][in] */ VARIANT Version,
600+ /* [retval][out] */ IVSSItem **ppIItem);
601+
602+ END_INTERFACE
603+ } IVSSItemOldVtbl;
604+
605+ interface IVSSItemOld
606+ {
607+ CONST_VTBL struct IVSSItemOldVtbl *lpVtbl;
608+ };
609+
610+
611+
612+#ifdef COBJMACROS
613+
614+
615+#define IVSSItemOld_QueryInterface(This,riid,ppvObject) \
616+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
617+
618+#define IVSSItemOld_AddRef(This) \
619+ ( (This)->lpVtbl -> AddRef(This) )
620+
621+#define IVSSItemOld_Release(This) \
622+ ( (This)->lpVtbl -> Release(This) )
623+
624+
625+#define IVSSItemOld_GetTypeInfoCount(This,pctinfo) \
626+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
627+
628+#define IVSSItemOld_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
629+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
630+
631+#define IVSSItemOld_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
632+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
633+
634+#define IVSSItemOld_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
635+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
636+
637+
638+#define IVSSItemOld_get_Spec(This,pSpec) \
639+ ( (This)->lpVtbl -> get_Spec(This,pSpec) )
640+
641+#define IVSSItemOld_get_Binary(This,pbBinary) \
642+ ( (This)->lpVtbl -> get_Binary(This,pbBinary) )
643+
644+#define IVSSItemOld_put_Binary(This,pbBinary) \
645+ ( (This)->lpVtbl -> put_Binary(This,pbBinary) )
646+
647+#define IVSSItemOld_get_Deleted(This,pbDeleted) \
648+ ( (This)->lpVtbl -> get_Deleted(This,pbDeleted) )
649+
650+#define IVSSItemOld_put_Deleted(This,pbDeleted) \
651+ ( (This)->lpVtbl -> put_Deleted(This,pbDeleted) )
652+
653+#define IVSSItemOld_get_Type(This,piType) \
654+ ( (This)->lpVtbl -> get_Type(This,piType) )
655+
656+#define IVSSItemOld_get_LocalSpec(This,pLocal) \
657+ ( (This)->lpVtbl -> get_LocalSpec(This,pLocal) )
658+
659+#define IVSSItemOld_put_LocalSpec(This,pLocal) \
660+ ( (This)->lpVtbl -> put_LocalSpec(This,pLocal) )
661+
662+#define IVSSItemOld_get_Name(This,pName) \
663+ ( (This)->lpVtbl -> get_Name(This,pName) )
664+
665+#define IVSSItemOld_put_Name(This,pName) \
666+ ( (This)->lpVtbl -> put_Name(This,pName) )
667+
668+#define IVSSItemOld_get_Parent(This,ppIParent) \
669+ ( (This)->lpVtbl -> get_Parent(This,ppIParent) )
670+
671+#define IVSSItemOld_get_VersionNumber(This,piVersion) \
672+ ( (This)->lpVtbl -> get_VersionNumber(This,piVersion) )
673+
674+#define IVSSItemOld_get_Items(This,IncludeDeleted,ppIItems) \
675+ ( (This)->lpVtbl -> get_Items(This,IncludeDeleted,ppIItems) )
676+
677+#define IVSSItemOld_Get(This,Local,iFlags) \
678+ ( (This)->lpVtbl -> Get(This,Local,iFlags) )
679+
680+#define IVSSItemOld_Checkout(This,Comment,Local,iFlags) \
681+ ( (This)->lpVtbl -> Checkout(This,Comment,Local,iFlags) )
682+
683+#define IVSSItemOld_Checkin(This,Comment,Local,iFlags) \
684+ ( (This)->lpVtbl -> Checkin(This,Comment,Local,iFlags) )
685+
686+#define IVSSItemOld_UndoCheckout(This,Local,iFlags) \
687+ ( (This)->lpVtbl -> UndoCheckout(This,Local,iFlags) )
688+
689+#define IVSSItemOld_get_IsCheckedOut(This,piStatus) \
690+ ( (This)->lpVtbl -> get_IsCheckedOut(This,piStatus) )
691+
692+#define IVSSItemOld_get_Checkouts(This,ppICheckouts) \
693+ ( (This)->lpVtbl -> get_Checkouts(This,ppICheckouts) )
694+
695+#define IVSSItemOld_get_IsDifferent(This,Local,pbDifferent) \
696+ ( (This)->lpVtbl -> get_IsDifferent(This,Local,pbDifferent) )
697+
698+#define IVSSItemOld_Add(This,Local,Comment,iFlags,ppIItem) \
699+ ( (This)->lpVtbl -> Add(This,Local,Comment,iFlags,ppIItem) )
700+
701+#define IVSSItemOld_NewSubproject(This,Name,Comment,ppIItem) \
702+ ( (This)->lpVtbl -> NewSubproject(This,Name,Comment,ppIItem) )
703+
704+#define IVSSItemOld_Share(This,pIItem,Comment,iFlags) \
705+ ( (This)->lpVtbl -> Share(This,pIItem,Comment,iFlags) )
706+
707+#define IVSSItemOld_Destroy(This) \
708+ ( (This)->lpVtbl -> Destroy(This) )
709+
710+#define IVSSItemOld_Move(This,pINewParent) \
711+ ( (This)->lpVtbl -> Move(This,pINewParent) )
712+
713+#define IVSSItemOld_Label(This,Label,Comment) \
714+ ( (This)->lpVtbl -> Label(This,Label,Comment) )
715+
716+#define IVSSItemOld_get_Versions(This,iFlags,pIVersions) \
717+ ( (This)->lpVtbl -> get_Versions(This,iFlags,pIVersions) )
718+
719+#define IVSSItemOld_get_Version(This,Version,ppIItem) \
720+ ( (This)->lpVtbl -> get_Version(This,Version,ppIItem) )
721+
722+#endif /* COBJMACROS */
723+
724+
725+#endif /* C style interface */
726+
727+
728+
729+
730+#endif /* __IVSSItemOld_INTERFACE_DEFINED__ */
731+
732+
733+#ifndef __IVSSItem_INTERFACE_DEFINED__
734+#define __IVSSItem_INTERFACE_DEFINED__
735+
736+/* interface IVSSItem */
737+/* [object][oleautomation][dual][helpstring][uuid] */
738+
739+
740+EXTERN_C const IID IID_IVSSItem;
741+
742+#if defined(__cplusplus) && !defined(CINTERFACE)
743+
744+ MIDL_INTERFACE("2A0DE0E7-2E9F-11D0-9236-00AA00A1EB95")
745+ IVSSItem : public IVSSItemOld
746+ {
747+ public:
748+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Links(
749+ /* [retval][out] */ IVSSItems **ppIItems) = 0;
750+
751+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE Branch(
752+ /* [defaultvalue][optional][in] */ BSTR Comment,
753+ /* [defaultvalue][optional][in] */ long iFlags,
754+ /* [retval][out] */ IVSSItem **ppIItem) = 0;
755+
756+ };
757+
758+#else /* C style interface */
759+
760+ typedef struct IVSSItemVtbl
761+ {
762+ BEGIN_INTERFACE
763+
764+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
765+ IVSSItem * This,
766+ /* [in] */ REFIID riid,
767+ /* [annotation][iid_is][out] */
768+ __RPC__deref_out void **ppvObject);
769+
770+ ULONG ( STDMETHODCALLTYPE *AddRef )(
771+ IVSSItem * This);
772+
773+ ULONG ( STDMETHODCALLTYPE *Release )(
774+ IVSSItem * This);
775+
776+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
777+ IVSSItem * This,
778+ /* [out] */ UINT *pctinfo);
779+
780+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
781+ IVSSItem * This,
782+ /* [in] */ UINT iTInfo,
783+ /* [in] */ LCID lcid,
784+ /* [out] */ ITypeInfo **ppTInfo);
785+
786+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
787+ IVSSItem * This,
788+ /* [in] */ REFIID riid,
789+ /* [size_is][in] */ LPOLESTR *rgszNames,
790+ /* [range][in] */ UINT cNames,
791+ /* [in] */ LCID lcid,
792+ /* [size_is][out] */ DISPID *rgDispId);
793+
794+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
795+ IVSSItem * This,
796+ /* [in] */ DISPID dispIdMember,
797+ /* [in] */ REFIID riid,
798+ /* [in] */ LCID lcid,
799+ /* [in] */ WORD wFlags,
800+ /* [out][in] */ DISPPARAMS *pDispParams,
801+ /* [out] */ VARIANT *pVarResult,
802+ /* [out] */ EXCEPINFO *pExcepInfo,
803+ /* [out] */ UINT *puArgErr);
804+
805+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Spec )(
806+ IVSSItem * This,
807+ /* [retval][out] */ BSTR *pSpec);
808+
809+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Binary )(
810+ IVSSItem * This,
811+ /* [retval][out] */ VARIANT_BOOL *pbBinary);
812+
813+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Binary )(
814+ IVSSItem * This,
815+ /* [in] */ VARIANT_BOOL pbBinary);
816+
817+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Deleted )(
818+ IVSSItem * This,
819+ /* [retval][out] */ VARIANT_BOOL *pbDeleted);
820+
821+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Deleted )(
822+ IVSSItem * This,
823+ /* [in] */ VARIANT_BOOL pbDeleted);
824+
825+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Type )(
826+ IVSSItem * This,
827+ /* [retval][out] */ int *piType);
828+
829+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LocalSpec )(
830+ IVSSItem * This,
831+ /* [retval][out] */ BSTR *pLocal);
832+
833+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LocalSpec )(
834+ IVSSItem * This,
835+ /* [in] */ BSTR pLocal);
836+
837+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
838+ IVSSItem * This,
839+ /* [retval][out] */ BSTR *pName);
840+
841+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )(
842+ IVSSItem * This,
843+ /* [in] */ BSTR pName);
844+
845+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )(
846+ IVSSItem * This,
847+ /* [retval][out] */ IVSSItem **ppIParent);
848+
849+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VersionNumber )(
850+ IVSSItem * This,
851+ /* [retval][out] */ long *piVersion);
852+
853+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Items )(
854+ IVSSItem * This,
855+ /* [defaultvalue][optional][in] */ VARIANT_BOOL IncludeDeleted,
856+ /* [retval][out] */ IVSSItems **ppIItems);
857+
858+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Get )(
859+ IVSSItem * This,
860+ /* [defaultvalue][optional][out][in] */ BSTR *Local,
861+ /* [defaultvalue][optional][in] */ long iFlags);
862+
863+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Checkout )(
864+ IVSSItem * This,
865+ /* [defaultvalue][optional][in] */ BSTR Comment,
866+ /* [defaultvalue][optional][in] */ BSTR Local,
867+ /* [defaultvalue][optional][in] */ long iFlags);
868+
869+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Checkin )(
870+ IVSSItem * This,
871+ /* [defaultvalue][optional][in] */ BSTR Comment,
872+ /* [defaultvalue][optional][in] */ BSTR Local,
873+ /* [defaultvalue][optional][in] */ long iFlags);
874+
875+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *UndoCheckout )(
876+ IVSSItem * This,
877+ /* [defaultvalue][optional][in] */ BSTR Local,
878+ /* [defaultvalue][optional][in] */ long iFlags);
879+
880+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsCheckedOut )(
881+ IVSSItem * This,
882+ /* [retval][out] */ long *piStatus);
883+
884+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Checkouts )(
885+ IVSSItem * This,
886+ /* [retval][out] */ IVSSCheckouts **ppICheckouts);
887+
888+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_IsDifferent )(
889+ IVSSItem * This,
890+ /* [defaultvalue][optional][in] */ BSTR Local,
891+ /* [retval][out] */ VARIANT_BOOL *pbDifferent);
892+
893+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Add )(
894+ IVSSItem * This,
895+ /* [in] */ BSTR Local,
896+ /* [defaultvalue][optional][in] */ BSTR Comment,
897+ /* [defaultvalue][optional][in] */ long iFlags,
898+ /* [retval][out] */ IVSSItem **ppIItem);
899+
900+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *NewSubproject )(
901+ IVSSItem * This,
902+ /* [in] */ BSTR Name,
903+ /* [defaultvalue][optional][in] */ BSTR Comment,
904+ /* [retval][out] */ IVSSItem **ppIItem);
905+
906+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Share )(
907+ IVSSItem * This,
908+ /* [in] */ IVSSItem *pIItem,
909+ /* [defaultvalue][optional][in] */ BSTR Comment,
910+ /* [defaultvalue][optional][in] */ long iFlags);
911+
912+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Destroy )(
913+ IVSSItem * This);
914+
915+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Move )(
916+ IVSSItem * This,
917+ /* [in] */ IVSSItem *pINewParent);
918+
919+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Label )(
920+ IVSSItem * This,
921+ /* [in] */ BSTR Label,
922+ /* [defaultvalue][optional][in] */ BSTR Comment);
923+
924+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Versions )(
925+ IVSSItem * This,
926+ /* [defaultvalue][optional][in] */ long iFlags,
927+ /* [retval][out] */ IVSSVersions **pIVersions);
928+
929+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )(
930+ IVSSItem * This,
931+ /* [optional][in] */ VARIANT Version,
932+ /* [retval][out] */ IVSSItem **ppIItem);
933+
934+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Links )(
935+ IVSSItem * This,
936+ /* [retval][out] */ IVSSItems **ppIItems);
937+
938+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Branch )(
939+ IVSSItem * This,
940+ /* [defaultvalue][optional][in] */ BSTR Comment,
941+ /* [defaultvalue][optional][in] */ long iFlags,
942+ /* [retval][out] */ IVSSItem **ppIItem);
943+
944+ END_INTERFACE
945+ } IVSSItemVtbl;
946+
947+ interface IVSSItem
948+ {
949+ CONST_VTBL struct IVSSItemVtbl *lpVtbl;
950+ };
951+
952+
953+
954+#ifdef COBJMACROS
955+
956+
957+#define IVSSItem_QueryInterface(This,riid,ppvObject) \
958+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
959+
960+#define IVSSItem_AddRef(This) \
961+ ( (This)->lpVtbl -> AddRef(This) )
962+
963+#define IVSSItem_Release(This) \
964+ ( (This)->lpVtbl -> Release(This) )
965+
966+
967+#define IVSSItem_GetTypeInfoCount(This,pctinfo) \
968+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
969+
970+#define IVSSItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
971+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
972+
973+#define IVSSItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
974+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
975+
976+#define IVSSItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
977+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
978+
979+
980+#define IVSSItem_get_Spec(This,pSpec) \
981+ ( (This)->lpVtbl -> get_Spec(This,pSpec) )
982+
983+#define IVSSItem_get_Binary(This,pbBinary) \
984+ ( (This)->lpVtbl -> get_Binary(This,pbBinary) )
985+
986+#define IVSSItem_put_Binary(This,pbBinary) \
987+ ( (This)->lpVtbl -> put_Binary(This,pbBinary) )
988+
989+#define IVSSItem_get_Deleted(This,pbDeleted) \
990+ ( (This)->lpVtbl -> get_Deleted(This,pbDeleted) )
991+
992+#define IVSSItem_put_Deleted(This,pbDeleted) \
993+ ( (This)->lpVtbl -> put_Deleted(This,pbDeleted) )
994+
995+#define IVSSItem_get_Type(This,piType) \
996+ ( (This)->lpVtbl -> get_Type(This,piType) )
997+
998+#define IVSSItem_get_LocalSpec(This,pLocal) \
999+ ( (This)->lpVtbl -> get_LocalSpec(This,pLocal) )
1000+
1001+#define IVSSItem_put_LocalSpec(This,pLocal) \
1002+ ( (This)->lpVtbl -> put_LocalSpec(This,pLocal) )
1003+
1004+#define IVSSItem_get_Name(This,pName) \
1005+ ( (This)->lpVtbl -> get_Name(This,pName) )
1006+
1007+#define IVSSItem_put_Name(This,pName) \
1008+ ( (This)->lpVtbl -> put_Name(This,pName) )
1009+
1010+#define IVSSItem_get_Parent(This,ppIParent) \
1011+ ( (This)->lpVtbl -> get_Parent(This,ppIParent) )
1012+
1013+#define IVSSItem_get_VersionNumber(This,piVersion) \
1014+ ( (This)->lpVtbl -> get_VersionNumber(This,piVersion) )
1015+
1016+#define IVSSItem_get_Items(This,IncludeDeleted,ppIItems) \
1017+ ( (This)->lpVtbl -> get_Items(This,IncludeDeleted,ppIItems) )
1018+
1019+#define IVSSItem_Get(This,Local,iFlags) \
1020+ ( (This)->lpVtbl -> Get(This,Local,iFlags) )
1021+
1022+#define IVSSItem_Checkout(This,Comment,Local,iFlags) \
1023+ ( (This)->lpVtbl -> Checkout(This,Comment,Local,iFlags) )
1024+
1025+#define IVSSItem_Checkin(This,Comment,Local,iFlags) \
1026+ ( (This)->lpVtbl -> Checkin(This,Comment,Local,iFlags) )
1027+
1028+#define IVSSItem_UndoCheckout(This,Local,iFlags) \
1029+ ( (This)->lpVtbl -> UndoCheckout(This,Local,iFlags) )
1030+
1031+#define IVSSItem_get_IsCheckedOut(This,piStatus) \
1032+ ( (This)->lpVtbl -> get_IsCheckedOut(This,piStatus) )
1033+
1034+#define IVSSItem_get_Checkouts(This,ppICheckouts) \
1035+ ( (This)->lpVtbl -> get_Checkouts(This,ppICheckouts) )
1036+
1037+#define IVSSItem_get_IsDifferent(This,Local,pbDifferent) \
1038+ ( (This)->lpVtbl -> get_IsDifferent(This,Local,pbDifferent) )
1039+
1040+#define IVSSItem_Add(This,Local,Comment,iFlags,ppIItem) \
1041+ ( (This)->lpVtbl -> Add(This,Local,Comment,iFlags,ppIItem) )
1042+
1043+#define IVSSItem_NewSubproject(This,Name,Comment,ppIItem) \
1044+ ( (This)->lpVtbl -> NewSubproject(This,Name,Comment,ppIItem) )
1045+
1046+#define IVSSItem_Share(This,pIItem,Comment,iFlags) \
1047+ ( (This)->lpVtbl -> Share(This,pIItem,Comment,iFlags) )
1048+
1049+#define IVSSItem_Destroy(This) \
1050+ ( (This)->lpVtbl -> Destroy(This) )
1051+
1052+#define IVSSItem_Move(This,pINewParent) \
1053+ ( (This)->lpVtbl -> Move(This,pINewParent) )
1054+
1055+#define IVSSItem_Label(This,Label,Comment) \
1056+ ( (This)->lpVtbl -> Label(This,Label,Comment) )
1057+
1058+#define IVSSItem_get_Versions(This,iFlags,pIVersions) \
1059+ ( (This)->lpVtbl -> get_Versions(This,iFlags,pIVersions) )
1060+
1061+#define IVSSItem_get_Version(This,Version,ppIItem) \
1062+ ( (This)->lpVtbl -> get_Version(This,Version,ppIItem) )
1063+
1064+
1065+#define IVSSItem_get_Links(This,ppIItems) \
1066+ ( (This)->lpVtbl -> get_Links(This,ppIItems) )
1067+
1068+#define IVSSItem_Branch(This,Comment,iFlags,ppIItem) \
1069+ ( (This)->lpVtbl -> Branch(This,Comment,iFlags,ppIItem) )
1070+
1071+#endif /* COBJMACROS */
1072+
1073+
1074+#endif /* C style interface */
1075+
1076+
1077+
1078+
1079+#endif /* __IVSSItem_INTERFACE_DEFINED__ */
1080+
1081+
1082+#ifndef __IVSSItems_INTERFACE_DEFINED__
1083+#define __IVSSItems_INTERFACE_DEFINED__
1084+
1085+/* interface IVSSItems */
1086+/* [object][oleautomation][dual][helpstring][uuid] */
1087+
1088+
1089+EXTERN_C const IID IID_IVSSItems;
1090+
1091+#if defined(__cplusplus) && !defined(CINTERFACE)
1092+
1093+ MIDL_INTERFACE("783CD4E5-9D54-11CF-B8EE-00608CC9A71F")
1094+ IVSSItems : public IDispatch
1095+ {
1096+ public:
1097+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Count(
1098+ /* [retval][out] */ long *piCount) = 0;
1099+
1100+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Item(
1101+ /* [in] */ VARIANT sItem,
1102+ /* [retval][out] */ IVSSItem **ppIItem) = 0;
1103+
1104+ virtual /* [hidden][restricted][id] */ HRESULT STDMETHODCALLTYPE _NewEnum(
1105+ /* [retval][out] */ IUnknown **ppIEnum) = 0;
1106+
1107+ };
1108+
1109+#else /* C style interface */
1110+
1111+ typedef struct IVSSItemsVtbl
1112+ {
1113+ BEGIN_INTERFACE
1114+
1115+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1116+ IVSSItems * This,
1117+ /* [in] */ REFIID riid,
1118+ /* [annotation][iid_is][out] */
1119+ __RPC__deref_out void **ppvObject);
1120+
1121+ ULONG ( STDMETHODCALLTYPE *AddRef )(
1122+ IVSSItems * This);
1123+
1124+ ULONG ( STDMETHODCALLTYPE *Release )(
1125+ IVSSItems * This);
1126+
1127+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
1128+ IVSSItems * This,
1129+ /* [out] */ UINT *pctinfo);
1130+
1131+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
1132+ IVSSItems * This,
1133+ /* [in] */ UINT iTInfo,
1134+ /* [in] */ LCID lcid,
1135+ /* [out] */ ITypeInfo **ppTInfo);
1136+
1137+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
1138+ IVSSItems * This,
1139+ /* [in] */ REFIID riid,
1140+ /* [size_is][in] */ LPOLESTR *rgszNames,
1141+ /* [range][in] */ UINT cNames,
1142+ /* [in] */ LCID lcid,
1143+ /* [size_is][out] */ DISPID *rgDispId);
1144+
1145+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
1146+ IVSSItems * This,
1147+ /* [in] */ DISPID dispIdMember,
1148+ /* [in] */ REFIID riid,
1149+ /* [in] */ LCID lcid,
1150+ /* [in] */ WORD wFlags,
1151+ /* [out][in] */ DISPPARAMS *pDispParams,
1152+ /* [out] */ VARIANT *pVarResult,
1153+ /* [out] */ EXCEPINFO *pExcepInfo,
1154+ /* [out] */ UINT *puArgErr);
1155+
1156+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
1157+ IVSSItems * This,
1158+ /* [retval][out] */ long *piCount);
1159+
1160+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
1161+ IVSSItems * This,
1162+ /* [in] */ VARIANT sItem,
1163+ /* [retval][out] */ IVSSItem **ppIItem);
1164+
1165+ /* [hidden][restricted][id] */ HRESULT ( STDMETHODCALLTYPE *_NewEnum )(
1166+ IVSSItems * This,
1167+ /* [retval][out] */ IUnknown **ppIEnum);
1168+
1169+ END_INTERFACE
1170+ } IVSSItemsVtbl;
1171+
1172+ interface IVSSItems
1173+ {
1174+ CONST_VTBL struct IVSSItemsVtbl *lpVtbl;
1175+ };
1176+
1177+
1178+
1179+#ifdef COBJMACROS
1180+
1181+
1182+#define IVSSItems_QueryInterface(This,riid,ppvObject) \
1183+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1184+
1185+#define IVSSItems_AddRef(This) \
1186+ ( (This)->lpVtbl -> AddRef(This) )
1187+
1188+#define IVSSItems_Release(This) \
1189+ ( (This)->lpVtbl -> Release(This) )
1190+
1191+
1192+#define IVSSItems_GetTypeInfoCount(This,pctinfo) \
1193+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
1194+
1195+#define IVSSItems_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
1196+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
1197+
1198+#define IVSSItems_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
1199+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
1200+
1201+#define IVSSItems_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
1202+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
1203+
1204+
1205+#define IVSSItems_get_Count(This,piCount) \
1206+ ( (This)->lpVtbl -> get_Count(This,piCount) )
1207+
1208+#define IVSSItems_get_Item(This,sItem,ppIItem) \
1209+ ( (This)->lpVtbl -> get_Item(This,sItem,ppIItem) )
1210+
1211+#define IVSSItems__NewEnum(This,ppIEnum) \
1212+ ( (This)->lpVtbl -> _NewEnum(This,ppIEnum) )
1213+
1214+#endif /* COBJMACROS */
1215+
1216+
1217+#endif /* C style interface */
1218+
1219+
1220+
1221+
1222+#endif /* __IVSSItems_INTERFACE_DEFINED__ */
1223+
1224+
1225+#ifndef __IVSSCheckouts_INTERFACE_DEFINED__
1226+#define __IVSSCheckouts_INTERFACE_DEFINED__
1227+
1228+/* interface IVSSCheckouts */
1229+/* [object][oleautomation][dual][helpstring][uuid] */
1230+
1231+
1232+EXTERN_C const IID IID_IVSSCheckouts;
1233+
1234+#if defined(__cplusplus) && !defined(CINTERFACE)
1235+
1236+ MIDL_INTERFACE("8903A770-F55F-11CF-9227-00AA00A1EB95")
1237+ IVSSCheckouts : public IDispatch
1238+ {
1239+ public:
1240+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Count(
1241+ /* [retval][out] */ long *piCount) = 0;
1242+
1243+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Item(
1244+ /* [in] */ VARIANT sItem,
1245+ /* [retval][out] */ IVSSCheckout **ppICheckout) = 0;
1246+
1247+ virtual /* [hidden][restricted][id] */ HRESULT STDMETHODCALLTYPE _NewEnum(
1248+ /* [retval][out] */ IUnknown **ppIEnum) = 0;
1249+
1250+ };
1251+
1252+#else /* C style interface */
1253+
1254+ typedef struct IVSSCheckoutsVtbl
1255+ {
1256+ BEGIN_INTERFACE
1257+
1258+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1259+ IVSSCheckouts * This,
1260+ /* [in] */ REFIID riid,
1261+ /* [annotation][iid_is][out] */
1262+ __RPC__deref_out void **ppvObject);
1263+
1264+ ULONG ( STDMETHODCALLTYPE *AddRef )(
1265+ IVSSCheckouts * This);
1266+
1267+ ULONG ( STDMETHODCALLTYPE *Release )(
1268+ IVSSCheckouts * This);
1269+
1270+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
1271+ IVSSCheckouts * This,
1272+ /* [out] */ UINT *pctinfo);
1273+
1274+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
1275+ IVSSCheckouts * This,
1276+ /* [in] */ UINT iTInfo,
1277+ /* [in] */ LCID lcid,
1278+ /* [out] */ ITypeInfo **ppTInfo);
1279+
1280+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
1281+ IVSSCheckouts * This,
1282+ /* [in] */ REFIID riid,
1283+ /* [size_is][in] */ LPOLESTR *rgszNames,
1284+ /* [range][in] */ UINT cNames,
1285+ /* [in] */ LCID lcid,
1286+ /* [size_is][out] */ DISPID *rgDispId);
1287+
1288+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
1289+ IVSSCheckouts * This,
1290+ /* [in] */ DISPID dispIdMember,
1291+ /* [in] */ REFIID riid,
1292+ /* [in] */ LCID lcid,
1293+ /* [in] */ WORD wFlags,
1294+ /* [out][in] */ DISPPARAMS *pDispParams,
1295+ /* [out] */ VARIANT *pVarResult,
1296+ /* [out] */ EXCEPINFO *pExcepInfo,
1297+ /* [out] */ UINT *puArgErr);
1298+
1299+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
1300+ IVSSCheckouts * This,
1301+ /* [retval][out] */ long *piCount);
1302+
1303+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
1304+ IVSSCheckouts * This,
1305+ /* [in] */ VARIANT sItem,
1306+ /* [retval][out] */ IVSSCheckout **ppICheckout);
1307+
1308+ /* [hidden][restricted][id] */ HRESULT ( STDMETHODCALLTYPE *_NewEnum )(
1309+ IVSSCheckouts * This,
1310+ /* [retval][out] */ IUnknown **ppIEnum);
1311+
1312+ END_INTERFACE
1313+ } IVSSCheckoutsVtbl;
1314+
1315+ interface IVSSCheckouts
1316+ {
1317+ CONST_VTBL struct IVSSCheckoutsVtbl *lpVtbl;
1318+ };
1319+
1320+
1321+
1322+#ifdef COBJMACROS
1323+
1324+
1325+#define IVSSCheckouts_QueryInterface(This,riid,ppvObject) \
1326+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1327+
1328+#define IVSSCheckouts_AddRef(This) \
1329+ ( (This)->lpVtbl -> AddRef(This) )
1330+
1331+#define IVSSCheckouts_Release(This) \
1332+ ( (This)->lpVtbl -> Release(This) )
1333+
1334+
1335+#define IVSSCheckouts_GetTypeInfoCount(This,pctinfo) \
1336+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
1337+
1338+#define IVSSCheckouts_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
1339+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
1340+
1341+#define IVSSCheckouts_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
1342+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
1343+
1344+#define IVSSCheckouts_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
1345+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
1346+
1347+
1348+#define IVSSCheckouts_get_Count(This,piCount) \
1349+ ( (This)->lpVtbl -> get_Count(This,piCount) )
1350+
1351+#define IVSSCheckouts_get_Item(This,sItem,ppICheckout) \
1352+ ( (This)->lpVtbl -> get_Item(This,sItem,ppICheckout) )
1353+
1354+#define IVSSCheckouts__NewEnum(This,ppIEnum) \
1355+ ( (This)->lpVtbl -> _NewEnum(This,ppIEnum) )
1356+
1357+#endif /* COBJMACROS */
1358+
1359+
1360+#endif /* C style interface */
1361+
1362+
1363+
1364+
1365+#endif /* __IVSSCheckouts_INTERFACE_DEFINED__ */
1366+
1367+
1368+#ifndef __IVSSCheckout_INTERFACE_DEFINED__
1369+#define __IVSSCheckout_INTERFACE_DEFINED__
1370+
1371+/* interface IVSSCheckout */
1372+/* [object][oleautomation][dual][helpstring][uuid] */
1373+
1374+
1375+EXTERN_C const IID IID_IVSSCheckout;
1376+
1377+#if defined(__cplusplus) && !defined(CINTERFACE)
1378+
1379+ MIDL_INTERFACE("783CD4E6-9D54-11CF-B8EE-00608CC9A71F")
1380+ IVSSCheckout : public IDispatch
1381+ {
1382+ public:
1383+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Username(
1384+ /* [retval][out] */ BSTR *pUsername) = 0;
1385+
1386+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Date(
1387+ /* [retval][out] */ DATE *pDate) = 0;
1388+
1389+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LocalSpec(
1390+ /* [retval][out] */ BSTR *pLocal) = 0;
1391+
1392+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Machine(
1393+ /* [retval][out] */ BSTR *pMachine) = 0;
1394+
1395+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Project(
1396+ /* [retval][out] */ BSTR *pProject) = 0;
1397+
1398+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Comment(
1399+ /* [retval][out] */ BSTR *pComment) = 0;
1400+
1401+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_VersionNumber(
1402+ /* [retval][out] */ long *piVersion) = 0;
1403+
1404+ };
1405+
1406+#else /* C style interface */
1407+
1408+ typedef struct IVSSCheckoutVtbl
1409+ {
1410+ BEGIN_INTERFACE
1411+
1412+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1413+ IVSSCheckout * This,
1414+ /* [in] */ REFIID riid,
1415+ /* [annotation][iid_is][out] */
1416+ __RPC__deref_out void **ppvObject);
1417+
1418+ ULONG ( STDMETHODCALLTYPE *AddRef )(
1419+ IVSSCheckout * This);
1420+
1421+ ULONG ( STDMETHODCALLTYPE *Release )(
1422+ IVSSCheckout * This);
1423+
1424+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
1425+ IVSSCheckout * This,
1426+ /* [out] */ UINT *pctinfo);
1427+
1428+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
1429+ IVSSCheckout * This,
1430+ /* [in] */ UINT iTInfo,
1431+ /* [in] */ LCID lcid,
1432+ /* [out] */ ITypeInfo **ppTInfo);
1433+
1434+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
1435+ IVSSCheckout * This,
1436+ /* [in] */ REFIID riid,
1437+ /* [size_is][in] */ LPOLESTR *rgszNames,
1438+ /* [range][in] */ UINT cNames,
1439+ /* [in] */ LCID lcid,
1440+ /* [size_is][out] */ DISPID *rgDispId);
1441+
1442+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
1443+ IVSSCheckout * This,
1444+ /* [in] */ DISPID dispIdMember,
1445+ /* [in] */ REFIID riid,
1446+ /* [in] */ LCID lcid,
1447+ /* [in] */ WORD wFlags,
1448+ /* [out][in] */ DISPPARAMS *pDispParams,
1449+ /* [out] */ VARIANT *pVarResult,
1450+ /* [out] */ EXCEPINFO *pExcepInfo,
1451+ /* [out] */ UINT *puArgErr);
1452+
1453+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Username )(
1454+ IVSSCheckout * This,
1455+ /* [retval][out] */ BSTR *pUsername);
1456+
1457+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Date )(
1458+ IVSSCheckout * This,
1459+ /* [retval][out] */ DATE *pDate);
1460+
1461+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LocalSpec )(
1462+ IVSSCheckout * This,
1463+ /* [retval][out] */ BSTR *pLocal);
1464+
1465+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Machine )(
1466+ IVSSCheckout * This,
1467+ /* [retval][out] */ BSTR *pMachine);
1468+
1469+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Project )(
1470+ IVSSCheckout * This,
1471+ /* [retval][out] */ BSTR *pProject);
1472+
1473+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Comment )(
1474+ IVSSCheckout * This,
1475+ /* [retval][out] */ BSTR *pComment);
1476+
1477+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VersionNumber )(
1478+ IVSSCheckout * This,
1479+ /* [retval][out] */ long *piVersion);
1480+
1481+ END_INTERFACE
1482+ } IVSSCheckoutVtbl;
1483+
1484+ interface IVSSCheckout
1485+ {
1486+ CONST_VTBL struct IVSSCheckoutVtbl *lpVtbl;
1487+ };
1488+
1489+
1490+
1491+#ifdef COBJMACROS
1492+
1493+
1494+#define IVSSCheckout_QueryInterface(This,riid,ppvObject) \
1495+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1496+
1497+#define IVSSCheckout_AddRef(This) \
1498+ ( (This)->lpVtbl -> AddRef(This) )
1499+
1500+#define IVSSCheckout_Release(This) \
1501+ ( (This)->lpVtbl -> Release(This) )
1502+
1503+
1504+#define IVSSCheckout_GetTypeInfoCount(This,pctinfo) \
1505+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
1506+
1507+#define IVSSCheckout_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
1508+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
1509+
1510+#define IVSSCheckout_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
1511+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
1512+
1513+#define IVSSCheckout_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
1514+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
1515+
1516+
1517+#define IVSSCheckout_get_Username(This,pUsername) \
1518+ ( (This)->lpVtbl -> get_Username(This,pUsername) )
1519+
1520+#define IVSSCheckout_get_Date(This,pDate) \
1521+ ( (This)->lpVtbl -> get_Date(This,pDate) )
1522+
1523+#define IVSSCheckout_get_LocalSpec(This,pLocal) \
1524+ ( (This)->lpVtbl -> get_LocalSpec(This,pLocal) )
1525+
1526+#define IVSSCheckout_get_Machine(This,pMachine) \
1527+ ( (This)->lpVtbl -> get_Machine(This,pMachine) )
1528+
1529+#define IVSSCheckout_get_Project(This,pProject) \
1530+ ( (This)->lpVtbl -> get_Project(This,pProject) )
1531+
1532+#define IVSSCheckout_get_Comment(This,pComment) \
1533+ ( (This)->lpVtbl -> get_Comment(This,pComment) )
1534+
1535+#define IVSSCheckout_get_VersionNumber(This,piVersion) \
1536+ ( (This)->lpVtbl -> get_VersionNumber(This,piVersion) )
1537+
1538+#endif /* COBJMACROS */
1539+
1540+
1541+#endif /* C style interface */
1542+
1543+
1544+
1545+
1546+#endif /* __IVSSCheckout_INTERFACE_DEFINED__ */
1547+
1548+
1549+#ifndef __IVSSVersions_INTERFACE_DEFINED__
1550+#define __IVSSVersions_INTERFACE_DEFINED__
1551+
1552+/* interface IVSSVersions */
1553+/* [object][oleautomation][dual][helpstring][uuid] */
1554+
1555+
1556+EXTERN_C const IID IID_IVSSVersions;
1557+
1558+#if defined(__cplusplus) && !defined(CINTERFACE)
1559+
1560+ MIDL_INTERFACE("783CD4E7-9D54-11CF-B8EE-00608CC9A71F")
1561+ IVSSVersions : public IDispatch
1562+ {
1563+ public:
1564+ virtual /* [hidden][restricted][id] */ HRESULT STDMETHODCALLTYPE _NewEnum(
1565+ /* [retval][out] */ IUnknown **ppIEnum) = 0;
1566+
1567+ };
1568+
1569+#else /* C style interface */
1570+
1571+ typedef struct IVSSVersionsVtbl
1572+ {
1573+ BEGIN_INTERFACE
1574+
1575+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1576+ IVSSVersions * This,
1577+ /* [in] */ REFIID riid,
1578+ /* [annotation][iid_is][out] */
1579+ __RPC__deref_out void **ppvObject);
1580+
1581+ ULONG ( STDMETHODCALLTYPE *AddRef )(
1582+ IVSSVersions * This);
1583+
1584+ ULONG ( STDMETHODCALLTYPE *Release )(
1585+ IVSSVersions * This);
1586+
1587+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
1588+ IVSSVersions * This,
1589+ /* [out] */ UINT *pctinfo);
1590+
1591+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
1592+ IVSSVersions * This,
1593+ /* [in] */ UINT iTInfo,
1594+ /* [in] */ LCID lcid,
1595+ /* [out] */ ITypeInfo **ppTInfo);
1596+
1597+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
1598+ IVSSVersions * This,
1599+ /* [in] */ REFIID riid,
1600+ /* [size_is][in] */ LPOLESTR *rgszNames,
1601+ /* [range][in] */ UINT cNames,
1602+ /* [in] */ LCID lcid,
1603+ /* [size_is][out] */ DISPID *rgDispId);
1604+
1605+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
1606+ IVSSVersions * This,
1607+ /* [in] */ DISPID dispIdMember,
1608+ /* [in] */ REFIID riid,
1609+ /* [in] */ LCID lcid,
1610+ /* [in] */ WORD wFlags,
1611+ /* [out][in] */ DISPPARAMS *pDispParams,
1612+ /* [out] */ VARIANT *pVarResult,
1613+ /* [out] */ EXCEPINFO *pExcepInfo,
1614+ /* [out] */ UINT *puArgErr);
1615+
1616+ /* [hidden][restricted][id] */ HRESULT ( STDMETHODCALLTYPE *_NewEnum )(
1617+ IVSSVersions * This,
1618+ /* [retval][out] */ IUnknown **ppIEnum);
1619+
1620+ END_INTERFACE
1621+ } IVSSVersionsVtbl;
1622+
1623+ interface IVSSVersions
1624+ {
1625+ CONST_VTBL struct IVSSVersionsVtbl *lpVtbl;
1626+ };
1627+
1628+
1629+
1630+#ifdef COBJMACROS
1631+
1632+
1633+#define IVSSVersions_QueryInterface(This,riid,ppvObject) \
1634+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1635+
1636+#define IVSSVersions_AddRef(This) \
1637+ ( (This)->lpVtbl -> AddRef(This) )
1638+
1639+#define IVSSVersions_Release(This) \
1640+ ( (This)->lpVtbl -> Release(This) )
1641+
1642+
1643+#define IVSSVersions_GetTypeInfoCount(This,pctinfo) \
1644+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
1645+
1646+#define IVSSVersions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
1647+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
1648+
1649+#define IVSSVersions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
1650+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
1651+
1652+#define IVSSVersions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
1653+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
1654+
1655+
1656+#define IVSSVersions__NewEnum(This,ppIEnum) \
1657+ ( (This)->lpVtbl -> _NewEnum(This,ppIEnum) )
1658+
1659+#endif /* COBJMACROS */
1660+
1661+
1662+#endif /* C style interface */
1663+
1664+
1665+
1666+
1667+#endif /* __IVSSVersions_INTERFACE_DEFINED__ */
1668+
1669+
1670+#ifndef __IVSSVersionOld_INTERFACE_DEFINED__
1671+#define __IVSSVersionOld_INTERFACE_DEFINED__
1672+
1673+/* interface IVSSVersionOld */
1674+/* [object][oleautomation][dual][helpstring][uuid] */
1675+
1676+
1677+EXTERN_C const IID IID_IVSSVersionOld;
1678+
1679+#if defined(__cplusplus) && !defined(CINTERFACE)
1680+
1681+ MIDL_INTERFACE("783CD4E8-9D54-11CF-B8EE-00608CC9A71F")
1682+ IVSSVersionOld : public IDispatch
1683+ {
1684+ public:
1685+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Username(
1686+ /* [retval][out] */ BSTR *pUsername) = 0;
1687+
1688+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_VersionNumber(
1689+ /* [retval][out] */ long *piVersion) = 0;
1690+
1691+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Action(
1692+ /* [retval][out] */ BSTR *pAction) = 0;
1693+
1694+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Date(
1695+ /* [retval][out] */ DATE *pDate) = 0;
1696+
1697+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Comment(
1698+ /* [retval][out] */ BSTR *pComment) = 0;
1699+
1700+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Label(
1701+ /* [retval][out] */ BSTR *pLabel) = 0;
1702+
1703+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_VSSItem(
1704+ /* [retval][out] */ IVSSItem **ppIItem) = 0;
1705+
1706+ };
1707+
1708+#else /* C style interface */
1709+
1710+ typedef struct IVSSVersionOldVtbl
1711+ {
1712+ BEGIN_INTERFACE
1713+
1714+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1715+ IVSSVersionOld * This,
1716+ /* [in] */ REFIID riid,
1717+ /* [annotation][iid_is][out] */
1718+ __RPC__deref_out void **ppvObject);
1719+
1720+ ULONG ( STDMETHODCALLTYPE *AddRef )(
1721+ IVSSVersionOld * This);
1722+
1723+ ULONG ( STDMETHODCALLTYPE *Release )(
1724+ IVSSVersionOld * This);
1725+
1726+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
1727+ IVSSVersionOld * This,
1728+ /* [out] */ UINT *pctinfo);
1729+
1730+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
1731+ IVSSVersionOld * This,
1732+ /* [in] */ UINT iTInfo,
1733+ /* [in] */ LCID lcid,
1734+ /* [out] */ ITypeInfo **ppTInfo);
1735+
1736+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
1737+ IVSSVersionOld * This,
1738+ /* [in] */ REFIID riid,
1739+ /* [size_is][in] */ LPOLESTR *rgszNames,
1740+ /* [range][in] */ UINT cNames,
1741+ /* [in] */ LCID lcid,
1742+ /* [size_is][out] */ DISPID *rgDispId);
1743+
1744+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
1745+ IVSSVersionOld * This,
1746+ /* [in] */ DISPID dispIdMember,
1747+ /* [in] */ REFIID riid,
1748+ /* [in] */ LCID lcid,
1749+ /* [in] */ WORD wFlags,
1750+ /* [out][in] */ DISPPARAMS *pDispParams,
1751+ /* [out] */ VARIANT *pVarResult,
1752+ /* [out] */ EXCEPINFO *pExcepInfo,
1753+ /* [out] */ UINT *puArgErr);
1754+
1755+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Username )(
1756+ IVSSVersionOld * This,
1757+ /* [retval][out] */ BSTR *pUsername);
1758+
1759+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VersionNumber )(
1760+ IVSSVersionOld * This,
1761+ /* [retval][out] */ long *piVersion);
1762+
1763+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Action )(
1764+ IVSSVersionOld * This,
1765+ /* [retval][out] */ BSTR *pAction);
1766+
1767+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Date )(
1768+ IVSSVersionOld * This,
1769+ /* [retval][out] */ DATE *pDate);
1770+
1771+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Comment )(
1772+ IVSSVersionOld * This,
1773+ /* [retval][out] */ BSTR *pComment);
1774+
1775+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Label )(
1776+ IVSSVersionOld * This,
1777+ /* [retval][out] */ BSTR *pLabel);
1778+
1779+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VSSItem )(
1780+ IVSSVersionOld * This,
1781+ /* [retval][out] */ IVSSItem **ppIItem);
1782+
1783+ END_INTERFACE
1784+ } IVSSVersionOldVtbl;
1785+
1786+ interface IVSSVersionOld
1787+ {
1788+ CONST_VTBL struct IVSSVersionOldVtbl *lpVtbl;
1789+ };
1790+
1791+
1792+
1793+#ifdef COBJMACROS
1794+
1795+
1796+#define IVSSVersionOld_QueryInterface(This,riid,ppvObject) \
1797+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1798+
1799+#define IVSSVersionOld_AddRef(This) \
1800+ ( (This)->lpVtbl -> AddRef(This) )
1801+
1802+#define IVSSVersionOld_Release(This) \
1803+ ( (This)->lpVtbl -> Release(This) )
1804+
1805+
1806+#define IVSSVersionOld_GetTypeInfoCount(This,pctinfo) \
1807+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
1808+
1809+#define IVSSVersionOld_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
1810+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
1811+
1812+#define IVSSVersionOld_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
1813+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
1814+
1815+#define IVSSVersionOld_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
1816+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
1817+
1818+
1819+#define IVSSVersionOld_get_Username(This,pUsername) \
1820+ ( (This)->lpVtbl -> get_Username(This,pUsername) )
1821+
1822+#define IVSSVersionOld_get_VersionNumber(This,piVersion) \
1823+ ( (This)->lpVtbl -> get_VersionNumber(This,piVersion) )
1824+
1825+#define IVSSVersionOld_get_Action(This,pAction) \
1826+ ( (This)->lpVtbl -> get_Action(This,pAction) )
1827+
1828+#define IVSSVersionOld_get_Date(This,pDate) \
1829+ ( (This)->lpVtbl -> get_Date(This,pDate) )
1830+
1831+#define IVSSVersionOld_get_Comment(This,pComment) \
1832+ ( (This)->lpVtbl -> get_Comment(This,pComment) )
1833+
1834+#define IVSSVersionOld_get_Label(This,pLabel) \
1835+ ( (This)->lpVtbl -> get_Label(This,pLabel) )
1836+
1837+#define IVSSVersionOld_get_VSSItem(This,ppIItem) \
1838+ ( (This)->lpVtbl -> get_VSSItem(This,ppIItem) )
1839+
1840+#endif /* COBJMACROS */
1841+
1842+
1843+#endif /* C style interface */
1844+
1845+
1846+
1847+
1848+#endif /* __IVSSVersionOld_INTERFACE_DEFINED__ */
1849+
1850+
1851+#ifndef __IVSSVersion_INTERFACE_DEFINED__
1852+#define __IVSSVersion_INTERFACE_DEFINED__
1853+
1854+/* interface IVSSVersion */
1855+/* [object][oleautomation][dual][helpstring][uuid] */
1856+
1857+
1858+EXTERN_C const IID IID_IVSSVersion;
1859+
1860+#if defined(__cplusplus) && !defined(CINTERFACE)
1861+
1862+ MIDL_INTERFACE("2A0DE0E9-2E9F-11D0-9236-00AA00A1EB95")
1863+ IVSSVersion : public IVSSVersionOld
1864+ {
1865+ public:
1866+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LabelComment(
1867+ /* [retval][out] */ BSTR *pComment) = 0;
1868+
1869+ };
1870+
1871+#else /* C style interface */
1872+
1873+ typedef struct IVSSVersionVtbl
1874+ {
1875+ BEGIN_INTERFACE
1876+
1877+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1878+ IVSSVersion * This,
1879+ /* [in] */ REFIID riid,
1880+ /* [annotation][iid_is][out] */
1881+ __RPC__deref_out void **ppvObject);
1882+
1883+ ULONG ( STDMETHODCALLTYPE *AddRef )(
1884+ IVSSVersion * This);
1885+
1886+ ULONG ( STDMETHODCALLTYPE *Release )(
1887+ IVSSVersion * This);
1888+
1889+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
1890+ IVSSVersion * This,
1891+ /* [out] */ UINT *pctinfo);
1892+
1893+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
1894+ IVSSVersion * This,
1895+ /* [in] */ UINT iTInfo,
1896+ /* [in] */ LCID lcid,
1897+ /* [out] */ ITypeInfo **ppTInfo);
1898+
1899+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
1900+ IVSSVersion * This,
1901+ /* [in] */ REFIID riid,
1902+ /* [size_is][in] */ LPOLESTR *rgszNames,
1903+ /* [range][in] */ UINT cNames,
1904+ /* [in] */ LCID lcid,
1905+ /* [size_is][out] */ DISPID *rgDispId);
1906+
1907+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
1908+ IVSSVersion * This,
1909+ /* [in] */ DISPID dispIdMember,
1910+ /* [in] */ REFIID riid,
1911+ /* [in] */ LCID lcid,
1912+ /* [in] */ WORD wFlags,
1913+ /* [out][in] */ DISPPARAMS *pDispParams,
1914+ /* [out] */ VARIANT *pVarResult,
1915+ /* [out] */ EXCEPINFO *pExcepInfo,
1916+ /* [out] */ UINT *puArgErr);
1917+
1918+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Username )(
1919+ IVSSVersion * This,
1920+ /* [retval][out] */ BSTR *pUsername);
1921+
1922+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VersionNumber )(
1923+ IVSSVersion * This,
1924+ /* [retval][out] */ long *piVersion);
1925+
1926+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Action )(
1927+ IVSSVersion * This,
1928+ /* [retval][out] */ BSTR *pAction);
1929+
1930+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Date )(
1931+ IVSSVersion * This,
1932+ /* [retval][out] */ DATE *pDate);
1933+
1934+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Comment )(
1935+ IVSSVersion * This,
1936+ /* [retval][out] */ BSTR *pComment);
1937+
1938+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Label )(
1939+ IVSSVersion * This,
1940+ /* [retval][out] */ BSTR *pLabel);
1941+
1942+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VSSItem )(
1943+ IVSSVersion * This,
1944+ /* [retval][out] */ IVSSItem **ppIItem);
1945+
1946+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LabelComment )(
1947+ IVSSVersion * This,
1948+ /* [retval][out] */ BSTR *pComment);
1949+
1950+ END_INTERFACE
1951+ } IVSSVersionVtbl;
1952+
1953+ interface IVSSVersion
1954+ {
1955+ CONST_VTBL struct IVSSVersionVtbl *lpVtbl;
1956+ };
1957+
1958+
1959+
1960+#ifdef COBJMACROS
1961+
1962+
1963+#define IVSSVersion_QueryInterface(This,riid,ppvObject) \
1964+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1965+
1966+#define IVSSVersion_AddRef(This) \
1967+ ( (This)->lpVtbl -> AddRef(This) )
1968+
1969+#define IVSSVersion_Release(This) \
1970+ ( (This)->lpVtbl -> Release(This) )
1971+
1972+
1973+#define IVSSVersion_GetTypeInfoCount(This,pctinfo) \
1974+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
1975+
1976+#define IVSSVersion_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
1977+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
1978+
1979+#define IVSSVersion_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
1980+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
1981+
1982+#define IVSSVersion_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
1983+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
1984+
1985+
1986+#define IVSSVersion_get_Username(This,pUsername) \
1987+ ( (This)->lpVtbl -> get_Username(This,pUsername) )
1988+
1989+#define IVSSVersion_get_VersionNumber(This,piVersion) \
1990+ ( (This)->lpVtbl -> get_VersionNumber(This,piVersion) )
1991+
1992+#define IVSSVersion_get_Action(This,pAction) \
1993+ ( (This)->lpVtbl -> get_Action(This,pAction) )
1994+
1995+#define IVSSVersion_get_Date(This,pDate) \
1996+ ( (This)->lpVtbl -> get_Date(This,pDate) )
1997+
1998+#define IVSSVersion_get_Comment(This,pComment) \
1999+ ( (This)->lpVtbl -> get_Comment(This,pComment) )
2000+
2001+#define IVSSVersion_get_Label(This,pLabel) \
2002+ ( (This)->lpVtbl -> get_Label(This,pLabel) )
2003+
2004+#define IVSSVersion_get_VSSItem(This,ppIItem) \
2005+ ( (This)->lpVtbl -> get_VSSItem(This,ppIItem) )
2006+
2007+
2008+#define IVSSVersion_get_LabelComment(This,pComment) \
2009+ ( (This)->lpVtbl -> get_LabelComment(This,pComment) )
2010+
2011+#endif /* COBJMACROS */
2012+
2013+
2014+#endif /* C style interface */
2015+
2016+
2017+
2018+
2019+#endif /* __IVSSVersion_INTERFACE_DEFINED__ */
2020+
2021+
2022+#ifndef __IVSSUsers_INTERFACE_DEFINED__
2023+#define __IVSSUsers_INTERFACE_DEFINED__
2024+
2025+/* interface IVSSUsers */
2026+/* [object][oleautomation][dual][helpstring][uuid] */
2027+
2028+
2029+EXTERN_C const IID IID_IVSSUsers;
2030+
2031+#if defined(__cplusplus) && !defined(CINTERFACE)
2032+
2033+ MIDL_INTERFACE("2A0DE0E4-2E9F-11D0-9236-00AA00A1EB95")
2034+ IVSSUsers : public IDispatch
2035+ {
2036+ public:
2037+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Count(
2038+ /* [retval][out] */ long *piCount) = 0;
2039+
2040+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Item(
2041+ /* [in] */ VARIANT sItem,
2042+ /* [retval][out] */ IVSSUser **ppIUser) = 0;
2043+
2044+ virtual /* [hidden][restricted][id] */ HRESULT STDMETHODCALLTYPE _NewEnum(
2045+ /* [retval][out] */ IUnknown **ppIEnum) = 0;
2046+
2047+ };
2048+
2049+#else /* C style interface */
2050+
2051+ typedef struct IVSSUsersVtbl
2052+ {
2053+ BEGIN_INTERFACE
2054+
2055+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2056+ IVSSUsers * This,
2057+ /* [in] */ REFIID riid,
2058+ /* [annotation][iid_is][out] */
2059+ __RPC__deref_out void **ppvObject);
2060+
2061+ ULONG ( STDMETHODCALLTYPE *AddRef )(
2062+ IVSSUsers * This);
2063+
2064+ ULONG ( STDMETHODCALLTYPE *Release )(
2065+ IVSSUsers * This);
2066+
2067+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
2068+ IVSSUsers * This,
2069+ /* [out] */ UINT *pctinfo);
2070+
2071+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
2072+ IVSSUsers * This,
2073+ /* [in] */ UINT iTInfo,
2074+ /* [in] */ LCID lcid,
2075+ /* [out] */ ITypeInfo **ppTInfo);
2076+
2077+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
2078+ IVSSUsers * This,
2079+ /* [in] */ REFIID riid,
2080+ /* [size_is][in] */ LPOLESTR *rgszNames,
2081+ /* [range][in] */ UINT cNames,
2082+ /* [in] */ LCID lcid,
2083+ /* [size_is][out] */ DISPID *rgDispId);
2084+
2085+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
2086+ IVSSUsers * This,
2087+ /* [in] */ DISPID dispIdMember,
2088+ /* [in] */ REFIID riid,
2089+ /* [in] */ LCID lcid,
2090+ /* [in] */ WORD wFlags,
2091+ /* [out][in] */ DISPPARAMS *pDispParams,
2092+ /* [out] */ VARIANT *pVarResult,
2093+ /* [out] */ EXCEPINFO *pExcepInfo,
2094+ /* [out] */ UINT *puArgErr);
2095+
2096+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
2097+ IVSSUsers * This,
2098+ /* [retval][out] */ long *piCount);
2099+
2100+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
2101+ IVSSUsers * This,
2102+ /* [in] */ VARIANT sItem,
2103+ /* [retval][out] */ IVSSUser **ppIUser);
2104+
2105+ /* [hidden][restricted][id] */ HRESULT ( STDMETHODCALLTYPE *_NewEnum )(
2106+ IVSSUsers * This,
2107+ /* [retval][out] */ IUnknown **ppIEnum);
2108+
2109+ END_INTERFACE
2110+ } IVSSUsersVtbl;
2111+
2112+ interface IVSSUsers
2113+ {
2114+ CONST_VTBL struct IVSSUsersVtbl *lpVtbl;
2115+ };
2116+
2117+
2118+
2119+#ifdef COBJMACROS
2120+
2121+
2122+#define IVSSUsers_QueryInterface(This,riid,ppvObject) \
2123+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2124+
2125+#define IVSSUsers_AddRef(This) \
2126+ ( (This)->lpVtbl -> AddRef(This) )
2127+
2128+#define IVSSUsers_Release(This) \
2129+ ( (This)->lpVtbl -> Release(This) )
2130+
2131+
2132+#define IVSSUsers_GetTypeInfoCount(This,pctinfo) \
2133+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
2134+
2135+#define IVSSUsers_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
2136+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
2137+
2138+#define IVSSUsers_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
2139+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
2140+
2141+#define IVSSUsers_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
2142+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
2143+
2144+
2145+#define IVSSUsers_get_Count(This,piCount) \
2146+ ( (This)->lpVtbl -> get_Count(This,piCount) )
2147+
2148+#define IVSSUsers_get_Item(This,sItem,ppIUser) \
2149+ ( (This)->lpVtbl -> get_Item(This,sItem,ppIUser) )
2150+
2151+#define IVSSUsers__NewEnum(This,ppIEnum) \
2152+ ( (This)->lpVtbl -> _NewEnum(This,ppIEnum) )
2153+
2154+#endif /* COBJMACROS */
2155+
2156+
2157+#endif /* C style interface */
2158+
2159+
2160+
2161+
2162+#endif /* __IVSSUsers_INTERFACE_DEFINED__ */
2163+
2164+
2165+#ifndef __IVSSUser_INTERFACE_DEFINED__
2166+#define __IVSSUser_INTERFACE_DEFINED__
2167+
2168+/* interface IVSSUser */
2169+/* [object][oleautomation][dual][helpstring][uuid] */
2170+
2171+
2172+EXTERN_C const IID IID_IVSSUser;
2173+
2174+#if defined(__cplusplus) && !defined(CINTERFACE)
2175+
2176+ MIDL_INTERFACE("2A0DE0E3-2E9F-11D0-9236-00AA00A1EB95")
2177+ IVSSUser : public IDispatch
2178+ {
2179+ public:
2180+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE Delete( void) = 0;
2181+
2182+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Name(
2183+ /* [retval][out] */ BSTR *pName) = 0;
2184+
2185+ virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Name(
2186+ /* [in] */ BSTR pName) = 0;
2187+
2188+ virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Password(
2189+ /* [in] */ BSTR rhs) = 0;
2190+
2191+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ReadOnly(
2192+ /* [retval][out] */ VARIANT_BOOL *pReadOnly) = 0;
2193+
2194+ virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ReadOnly(
2195+ /* [in] */ VARIANT_BOOL pReadOnly) = 0;
2196+
2197+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ProjectRights(
2198+ /* [defaultvalue][optional][in] */ BSTR Project,
2199+ /* [retval][out] */ long *piRightsOut) = 0;
2200+
2201+ virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ProjectRights(
2202+ /* [defaultvalue][optional][in] */ BSTR Project,
2203+ /* [in] */ long piRightsOut) = 0;
2204+
2205+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE RemoveProjectRights(
2206+ /* [in] */ BSTR Project) = 0;
2207+
2208+ };
2209+
2210+#else /* C style interface */
2211+
2212+ typedef struct IVSSUserVtbl
2213+ {
2214+ BEGIN_INTERFACE
2215+
2216+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2217+ IVSSUser * This,
2218+ /* [in] */ REFIID riid,
2219+ /* [annotation][iid_is][out] */
2220+ __RPC__deref_out void **ppvObject);
2221+
2222+ ULONG ( STDMETHODCALLTYPE *AddRef )(
2223+ IVSSUser * This);
2224+
2225+ ULONG ( STDMETHODCALLTYPE *Release )(
2226+ IVSSUser * This);
2227+
2228+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
2229+ IVSSUser * This,
2230+ /* [out] */ UINT *pctinfo);
2231+
2232+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
2233+ IVSSUser * This,
2234+ /* [in] */ UINT iTInfo,
2235+ /* [in] */ LCID lcid,
2236+ /* [out] */ ITypeInfo **ppTInfo);
2237+
2238+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
2239+ IVSSUser * This,
2240+ /* [in] */ REFIID riid,
2241+ /* [size_is][in] */ LPOLESTR *rgszNames,
2242+ /* [range][in] */ UINT cNames,
2243+ /* [in] */ LCID lcid,
2244+ /* [size_is][out] */ DISPID *rgDispId);
2245+
2246+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
2247+ IVSSUser * This,
2248+ /* [in] */ DISPID dispIdMember,
2249+ /* [in] */ REFIID riid,
2250+ /* [in] */ LCID lcid,
2251+ /* [in] */ WORD wFlags,
2252+ /* [out][in] */ DISPPARAMS *pDispParams,
2253+ /* [out] */ VARIANT *pVarResult,
2254+ /* [out] */ EXCEPINFO *pExcepInfo,
2255+ /* [out] */ UINT *puArgErr);
2256+
2257+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Delete )(
2258+ IVSSUser * This);
2259+
2260+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
2261+ IVSSUser * This,
2262+ /* [retval][out] */ BSTR *pName);
2263+
2264+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )(
2265+ IVSSUser * This,
2266+ /* [in] */ BSTR pName);
2267+
2268+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Password )(
2269+ IVSSUser * This,
2270+ /* [in] */ BSTR rhs);
2271+
2272+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ReadOnly )(
2273+ IVSSUser * This,
2274+ /* [retval][out] */ VARIANT_BOOL *pReadOnly);
2275+
2276+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ReadOnly )(
2277+ IVSSUser * This,
2278+ /* [in] */ VARIANT_BOOL pReadOnly);
2279+
2280+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ProjectRights )(
2281+ IVSSUser * This,
2282+ /* [defaultvalue][optional][in] */ BSTR Project,
2283+ /* [retval][out] */ long *piRightsOut);
2284+
2285+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ProjectRights )(
2286+ IVSSUser * This,
2287+ /* [defaultvalue][optional][in] */ BSTR Project,
2288+ /* [in] */ long piRightsOut);
2289+
2290+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *RemoveProjectRights )(
2291+ IVSSUser * This,
2292+ /* [in] */ BSTR Project);
2293+
2294+ END_INTERFACE
2295+ } IVSSUserVtbl;
2296+
2297+ interface IVSSUser
2298+ {
2299+ CONST_VTBL struct IVSSUserVtbl *lpVtbl;
2300+ };
2301+
2302+
2303+
2304+#ifdef COBJMACROS
2305+
2306+
2307+#define IVSSUser_QueryInterface(This,riid,ppvObject) \
2308+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2309+
2310+#define IVSSUser_AddRef(This) \
2311+ ( (This)->lpVtbl -> AddRef(This) )
2312+
2313+#define IVSSUser_Release(This) \
2314+ ( (This)->lpVtbl -> Release(This) )
2315+
2316+
2317+#define IVSSUser_GetTypeInfoCount(This,pctinfo) \
2318+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
2319+
2320+#define IVSSUser_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
2321+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
2322+
2323+#define IVSSUser_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
2324+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
2325+
2326+#define IVSSUser_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
2327+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
2328+
2329+
2330+#define IVSSUser_Delete(This) \
2331+ ( (This)->lpVtbl -> Delete(This) )
2332+
2333+#define IVSSUser_get_Name(This,pName) \
2334+ ( (This)->lpVtbl -> get_Name(This,pName) )
2335+
2336+#define IVSSUser_put_Name(This,pName) \
2337+ ( (This)->lpVtbl -> put_Name(This,pName) )
2338+
2339+#define IVSSUser_put_Password(This,rhs) \
2340+ ( (This)->lpVtbl -> put_Password(This,rhs) )
2341+
2342+#define IVSSUser_get_ReadOnly(This,pReadOnly) \
2343+ ( (This)->lpVtbl -> get_ReadOnly(This,pReadOnly) )
2344+
2345+#define IVSSUser_put_ReadOnly(This,pReadOnly) \
2346+ ( (This)->lpVtbl -> put_ReadOnly(This,pReadOnly) )
2347+
2348+#define IVSSUser_get_ProjectRights(This,Project,piRightsOut) \
2349+ ( (This)->lpVtbl -> get_ProjectRights(This,Project,piRightsOut) )
2350+
2351+#define IVSSUser_put_ProjectRights(This,Project,piRightsOut) \
2352+ ( (This)->lpVtbl -> put_ProjectRights(This,Project,piRightsOut) )
2353+
2354+#define IVSSUser_RemoveProjectRights(This,Project) \
2355+ ( (This)->lpVtbl -> RemoveProjectRights(This,Project) )
2356+
2357+#endif /* COBJMACROS */
2358+
2359+
2360+#endif /* C style interface */
2361+
2362+
2363+
2364+
2365+#endif /* __IVSSUser_INTERFACE_DEFINED__ */
2366+
2367+
2368+#ifndef __IVSSDatabaseOld_INTERFACE_DEFINED__
2369+#define __IVSSDatabaseOld_INTERFACE_DEFINED__
2370+
2371+/* interface IVSSDatabaseOld */
2372+/* [object][oleautomation][dual][helpstring][uuid] */
2373+
2374+
2375+EXTERN_C const IID IID_IVSSDatabaseOld;
2376+
2377+#if defined(__cplusplus) && !defined(CINTERFACE)
2378+
2379+ MIDL_INTERFACE("783CD4E2-9D54-11CF-B8EE-00608CC9A71F")
2380+ IVSSDatabaseOld : public IDispatch
2381+ {
2382+ public:
2383+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE Open(
2384+ /* [defaultvalue][optional][in] */ BSTR SrcSafeIni = L"",
2385+ /* [defaultvalue][optional][in] */ BSTR Username = L"",
2386+ /* [defaultvalue][optional][in] */ BSTR Password = L"") = 0;
2387+
2388+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SrcSafeIni(
2389+ /* [retval][out] */ BSTR *pSrcSafeIni) = 0;
2390+
2391+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DatabaseName(
2392+ /* [retval][out] */ BSTR *pDatabaseName) = 0;
2393+
2394+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Username(
2395+ /* [retval][out] */ BSTR *pUsername) = 0;
2396+
2397+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CurrentProject(
2398+ /* [retval][out] */ BSTR *pPrj) = 0;
2399+
2400+ virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CurrentProject(
2401+ /* [in] */ BSTR pPrj) = 0;
2402+
2403+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_VSSItem(
2404+ /* [in] */ BSTR Spec,
2405+ /* [defaultvalue][optional][in] */ VARIANT_BOOL Deleted,
2406+ /* [retval][out] */ IVSSItem **ppIVSSItem) = 0;
2407+
2408+ };
2409+
2410+#else /* C style interface */
2411+
2412+ typedef struct IVSSDatabaseOldVtbl
2413+ {
2414+ BEGIN_INTERFACE
2415+
2416+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2417+ IVSSDatabaseOld * This,
2418+ /* [in] */ REFIID riid,
2419+ /* [annotation][iid_is][out] */
2420+ __RPC__deref_out void **ppvObject);
2421+
2422+ ULONG ( STDMETHODCALLTYPE *AddRef )(
2423+ IVSSDatabaseOld * This);
2424+
2425+ ULONG ( STDMETHODCALLTYPE *Release )(
2426+ IVSSDatabaseOld * This);
2427+
2428+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
2429+ IVSSDatabaseOld * This,
2430+ /* [out] */ UINT *pctinfo);
2431+
2432+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
2433+ IVSSDatabaseOld * This,
2434+ /* [in] */ UINT iTInfo,
2435+ /* [in] */ LCID lcid,
2436+ /* [out] */ ITypeInfo **ppTInfo);
2437+
2438+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
2439+ IVSSDatabaseOld * This,
2440+ /* [in] */ REFIID riid,
2441+ /* [size_is][in] */ LPOLESTR *rgszNames,
2442+ /* [range][in] */ UINT cNames,
2443+ /* [in] */ LCID lcid,
2444+ /* [size_is][out] */ DISPID *rgDispId);
2445+
2446+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
2447+ IVSSDatabaseOld * This,
2448+ /* [in] */ DISPID dispIdMember,
2449+ /* [in] */ REFIID riid,
2450+ /* [in] */ LCID lcid,
2451+ /* [in] */ WORD wFlags,
2452+ /* [out][in] */ DISPPARAMS *pDispParams,
2453+ /* [out] */ VARIANT *pVarResult,
2454+ /* [out] */ EXCEPINFO *pExcepInfo,
2455+ /* [out] */ UINT *puArgErr);
2456+
2457+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Open )(
2458+ IVSSDatabaseOld * This,
2459+ /* [defaultvalue][optional][in] */ BSTR SrcSafeIni,
2460+ /* [defaultvalue][optional][in] */ BSTR Username,
2461+ /* [defaultvalue][optional][in] */ BSTR Password);
2462+
2463+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SrcSafeIni )(
2464+ IVSSDatabaseOld * This,
2465+ /* [retval][out] */ BSTR *pSrcSafeIni);
2466+
2467+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DatabaseName )(
2468+ IVSSDatabaseOld * This,
2469+ /* [retval][out] */ BSTR *pDatabaseName);
2470+
2471+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Username )(
2472+ IVSSDatabaseOld * This,
2473+ /* [retval][out] */ BSTR *pUsername);
2474+
2475+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentProject )(
2476+ IVSSDatabaseOld * This,
2477+ /* [retval][out] */ BSTR *pPrj);
2478+
2479+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurrentProject )(
2480+ IVSSDatabaseOld * This,
2481+ /* [in] */ BSTR pPrj);
2482+
2483+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VSSItem )(
2484+ IVSSDatabaseOld * This,
2485+ /* [in] */ BSTR Spec,
2486+ /* [defaultvalue][optional][in] */ VARIANT_BOOL Deleted,
2487+ /* [retval][out] */ IVSSItem **ppIVSSItem);
2488+
2489+ END_INTERFACE
2490+ } IVSSDatabaseOldVtbl;
2491+
2492+ interface IVSSDatabaseOld
2493+ {
2494+ CONST_VTBL struct IVSSDatabaseOldVtbl *lpVtbl;
2495+ };
2496+
2497+
2498+
2499+#ifdef COBJMACROS
2500+
2501+
2502+#define IVSSDatabaseOld_QueryInterface(This,riid,ppvObject) \
2503+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2504+
2505+#define IVSSDatabaseOld_AddRef(This) \
2506+ ( (This)->lpVtbl -> AddRef(This) )
2507+
2508+#define IVSSDatabaseOld_Release(This) \
2509+ ( (This)->lpVtbl -> Release(This) )
2510+
2511+
2512+#define IVSSDatabaseOld_GetTypeInfoCount(This,pctinfo) \
2513+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
2514+
2515+#define IVSSDatabaseOld_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
2516+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
2517+
2518+#define IVSSDatabaseOld_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
2519+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
2520+
2521+#define IVSSDatabaseOld_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
2522+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
2523+
2524+
2525+#define IVSSDatabaseOld_Open(This,SrcSafeIni,Username,Password) \
2526+ ( (This)->lpVtbl -> Open(This,SrcSafeIni,Username,Password) )
2527+
2528+#define IVSSDatabaseOld_get_SrcSafeIni(This,pSrcSafeIni) \
2529+ ( (This)->lpVtbl -> get_SrcSafeIni(This,pSrcSafeIni) )
2530+
2531+#define IVSSDatabaseOld_get_DatabaseName(This,pDatabaseName) \
2532+ ( (This)->lpVtbl -> get_DatabaseName(This,pDatabaseName) )
2533+
2534+#define IVSSDatabaseOld_get_Username(This,pUsername) \
2535+ ( (This)->lpVtbl -> get_Username(This,pUsername) )
2536+
2537+#define IVSSDatabaseOld_get_CurrentProject(This,pPrj) \
2538+ ( (This)->lpVtbl -> get_CurrentProject(This,pPrj) )
2539+
2540+#define IVSSDatabaseOld_put_CurrentProject(This,pPrj) \
2541+ ( (This)->lpVtbl -> put_CurrentProject(This,pPrj) )
2542+
2543+#define IVSSDatabaseOld_get_VSSItem(This,Spec,Deleted,ppIVSSItem) \
2544+ ( (This)->lpVtbl -> get_VSSItem(This,Spec,Deleted,ppIVSSItem) )
2545+
2546+#endif /* COBJMACROS */
2547+
2548+
2549+#endif /* C style interface */
2550+
2551+
2552+
2553+
2554+#endif /* __IVSSDatabaseOld_INTERFACE_DEFINED__ */
2555+
2556+
2557+#ifndef __IVSSDatabase_INTERFACE_DEFINED__
2558+#define __IVSSDatabase_INTERFACE_DEFINED__
2559+
2560+/* interface IVSSDatabase */
2561+/* [object][oleautomation][dual][helpstring][uuid] */
2562+
2563+
2564+EXTERN_C const IID IID_IVSSDatabase;
2565+
2566+#if defined(__cplusplus) && !defined(CINTERFACE)
2567+
2568+ MIDL_INTERFACE("2A0DE0E2-2E9F-11D0-9236-00AA00A1EB95")
2569+ IVSSDatabase : public IVSSDatabaseOld
2570+ {
2571+ public:
2572+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddUser(
2573+ /* [in] */ BSTR User,
2574+ /* [in] */ BSTR Password,
2575+ /* [in] */ VARIANT_BOOL ReadOnly,
2576+ /* [retval][out] */ IVSSUser **ppIUser) = 0;
2577+
2578+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_User(
2579+ /* [in] */ BSTR Name,
2580+ /* [retval][out] */ IVSSUser **ppIUser) = 0;
2581+
2582+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Users(
2583+ /* [retval][out] */ IVSSUsers **ppIUsers) = 0;
2584+
2585+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ProjectRightsEnabled(
2586+ /* [retval][out] */ VARIANT_BOOL *pEnabled) = 0;
2587+
2588+ virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ProjectRightsEnabled(
2589+ /* [in] */ VARIANT_BOOL pEnabled) = 0;
2590+
2591+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DefaultProjectRights(
2592+ /* [retval][out] */ long *pRights) = 0;
2593+
2594+ virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DefaultProjectRights(
2595+ /* [in] */ long pRights) = 0;
2596+
2597+ };
2598+
2599+#else /* C style interface */
2600+
2601+ typedef struct IVSSDatabaseVtbl
2602+ {
2603+ BEGIN_INTERFACE
2604+
2605+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2606+ IVSSDatabase * This,
2607+ /* [in] */ REFIID riid,
2608+ /* [annotation][iid_is][out] */
2609+ __RPC__deref_out void **ppvObject);
2610+
2611+ ULONG ( STDMETHODCALLTYPE *AddRef )(
2612+ IVSSDatabase * This);
2613+
2614+ ULONG ( STDMETHODCALLTYPE *Release )(
2615+ IVSSDatabase * This);
2616+
2617+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
2618+ IVSSDatabase * This,
2619+ /* [out] */ UINT *pctinfo);
2620+
2621+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
2622+ IVSSDatabase * This,
2623+ /* [in] */ UINT iTInfo,
2624+ /* [in] */ LCID lcid,
2625+ /* [out] */ ITypeInfo **ppTInfo);
2626+
2627+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
2628+ IVSSDatabase * This,
2629+ /* [in] */ REFIID riid,
2630+ /* [size_is][in] */ LPOLESTR *rgszNames,
2631+ /* [range][in] */ UINT cNames,
2632+ /* [in] */ LCID lcid,
2633+ /* [size_is][out] */ DISPID *rgDispId);
2634+
2635+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
2636+ IVSSDatabase * This,
2637+ /* [in] */ DISPID dispIdMember,
2638+ /* [in] */ REFIID riid,
2639+ /* [in] */ LCID lcid,
2640+ /* [in] */ WORD wFlags,
2641+ /* [out][in] */ DISPPARAMS *pDispParams,
2642+ /* [out] */ VARIANT *pVarResult,
2643+ /* [out] */ EXCEPINFO *pExcepInfo,
2644+ /* [out] */ UINT *puArgErr);
2645+
2646+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *Open )(
2647+ IVSSDatabase * This,
2648+ /* [defaultvalue][optional][in] */ BSTR SrcSafeIni,
2649+ /* [defaultvalue][optional][in] */ BSTR Username,
2650+ /* [defaultvalue][optional][in] */ BSTR Password);
2651+
2652+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SrcSafeIni )(
2653+ IVSSDatabase * This,
2654+ /* [retval][out] */ BSTR *pSrcSafeIni);
2655+
2656+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DatabaseName )(
2657+ IVSSDatabase * This,
2658+ /* [retval][out] */ BSTR *pDatabaseName);
2659+
2660+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Username )(
2661+ IVSSDatabase * This,
2662+ /* [retval][out] */ BSTR *pUsername);
2663+
2664+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentProject )(
2665+ IVSSDatabase * This,
2666+ /* [retval][out] */ BSTR *pPrj);
2667+
2668+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CurrentProject )(
2669+ IVSSDatabase * This,
2670+ /* [in] */ BSTR pPrj);
2671+
2672+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VSSItem )(
2673+ IVSSDatabase * This,
2674+ /* [in] */ BSTR Spec,
2675+ /* [defaultvalue][optional][in] */ VARIANT_BOOL Deleted,
2676+ /* [retval][out] */ IVSSItem **ppIVSSItem);
2677+
2678+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddUser )(
2679+ IVSSDatabase * This,
2680+ /* [in] */ BSTR User,
2681+ /* [in] */ BSTR Password,
2682+ /* [in] */ VARIANT_BOOL ReadOnly,
2683+ /* [retval][out] */ IVSSUser **ppIUser);
2684+
2685+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_User )(
2686+ IVSSDatabase * This,
2687+ /* [in] */ BSTR Name,
2688+ /* [retval][out] */ IVSSUser **ppIUser);
2689+
2690+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Users )(
2691+ IVSSDatabase * This,
2692+ /* [retval][out] */ IVSSUsers **ppIUsers);
2693+
2694+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ProjectRightsEnabled )(
2695+ IVSSDatabase * This,
2696+ /* [retval][out] */ VARIANT_BOOL *pEnabled);
2697+
2698+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ProjectRightsEnabled )(
2699+ IVSSDatabase * This,
2700+ /* [in] */ VARIANT_BOOL pEnabled);
2701+
2702+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DefaultProjectRights )(
2703+ IVSSDatabase * This,
2704+ /* [retval][out] */ long *pRights);
2705+
2706+ /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DefaultProjectRights )(
2707+ IVSSDatabase * This,
2708+ /* [in] */ long pRights);
2709+
2710+ END_INTERFACE
2711+ } IVSSDatabaseVtbl;
2712+
2713+ interface IVSSDatabase
2714+ {
2715+ CONST_VTBL struct IVSSDatabaseVtbl *lpVtbl;
2716+ };
2717+
2718+
2719+
2720+#ifdef COBJMACROS
2721+
2722+
2723+#define IVSSDatabase_QueryInterface(This,riid,ppvObject) \
2724+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2725+
2726+#define IVSSDatabase_AddRef(This) \
2727+ ( (This)->lpVtbl -> AddRef(This) )
2728+
2729+#define IVSSDatabase_Release(This) \
2730+ ( (This)->lpVtbl -> Release(This) )
2731+
2732+
2733+#define IVSSDatabase_GetTypeInfoCount(This,pctinfo) \
2734+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
2735+
2736+#define IVSSDatabase_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
2737+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
2738+
2739+#define IVSSDatabase_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
2740+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
2741+
2742+#define IVSSDatabase_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
2743+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
2744+
2745+
2746+#define IVSSDatabase_Open(This,SrcSafeIni,Username,Password) \
2747+ ( (This)->lpVtbl -> Open(This,SrcSafeIni,Username,Password) )
2748+
2749+#define IVSSDatabase_get_SrcSafeIni(This,pSrcSafeIni) \
2750+ ( (This)->lpVtbl -> get_SrcSafeIni(This,pSrcSafeIni) )
2751+
2752+#define IVSSDatabase_get_DatabaseName(This,pDatabaseName) \
2753+ ( (This)->lpVtbl -> get_DatabaseName(This,pDatabaseName) )
2754+
2755+#define IVSSDatabase_get_Username(This,pUsername) \
2756+ ( (This)->lpVtbl -> get_Username(This,pUsername) )
2757+
2758+#define IVSSDatabase_get_CurrentProject(This,pPrj) \
2759+ ( (This)->lpVtbl -> get_CurrentProject(This,pPrj) )
2760+
2761+#define IVSSDatabase_put_CurrentProject(This,pPrj) \
2762+ ( (This)->lpVtbl -> put_CurrentProject(This,pPrj) )
2763+
2764+#define IVSSDatabase_get_VSSItem(This,Spec,Deleted,ppIVSSItem) \
2765+ ( (This)->lpVtbl -> get_VSSItem(This,Spec,Deleted,ppIVSSItem) )
2766+
2767+
2768+#define IVSSDatabase_AddUser(This,User,Password,ReadOnly,ppIUser) \
2769+ ( (This)->lpVtbl -> AddUser(This,User,Password,ReadOnly,ppIUser) )
2770+
2771+#define IVSSDatabase_get_User(This,Name,ppIUser) \
2772+ ( (This)->lpVtbl -> get_User(This,Name,ppIUser) )
2773+
2774+#define IVSSDatabase_get_Users(This,ppIUsers) \
2775+ ( (This)->lpVtbl -> get_Users(This,ppIUsers) )
2776+
2777+#define IVSSDatabase_get_ProjectRightsEnabled(This,pEnabled) \
2778+ ( (This)->lpVtbl -> get_ProjectRightsEnabled(This,pEnabled) )
2779+
2780+#define IVSSDatabase_put_ProjectRightsEnabled(This,pEnabled) \
2781+ ( (This)->lpVtbl -> put_ProjectRightsEnabled(This,pEnabled) )
2782+
2783+#define IVSSDatabase_get_DefaultProjectRights(This,pRights) \
2784+ ( (This)->lpVtbl -> get_DefaultProjectRights(This,pRights) )
2785+
2786+#define IVSSDatabase_put_DefaultProjectRights(This,pRights) \
2787+ ( (This)->lpVtbl -> put_DefaultProjectRights(This,pRights) )
2788+
2789+#endif /* COBJMACROS */
2790+
2791+
2792+#endif /* C style interface */
2793+
2794+
2795+
2796+
2797+#endif /* __IVSSDatabase_INTERFACE_DEFINED__ */
2798+
2799+
2800+#ifndef __IVSSEventsOld_INTERFACE_DEFINED__
2801+#define __IVSSEventsOld_INTERFACE_DEFINED__
2802+
2803+/* interface IVSSEventsOld */
2804+/* [object][helpstring][uuid] */
2805+
2806+
2807+EXTERN_C const IID IID_IVSSEventsOld;
2808+
2809+#if defined(__cplusplus) && !defined(CINTERFACE)
2810+
2811+ MIDL_INTERFACE("783CD4E9-9D54-11CF-B8EE-00608CC9A71F")
2812+ IVSSEventsOld : public IUnknown
2813+ {
2814+ public:
2815+ virtual HRESULT __stdcall BeforeAdd(
2816+ /* [in] */ IVSSItem *pIPrj,
2817+ /* [in] */ BSTR Local,
2818+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
2819+
2820+ virtual HRESULT __stdcall AfterAdd(
2821+ /* [in] */ IVSSItem *pIItem,
2822+ /* [in] */ BSTR Local) = 0;
2823+
2824+ virtual HRESULT __stdcall BeforeCheckout(
2825+ /* [in] */ IVSSItem *pIItem,
2826+ /* [in] */ BSTR Local,
2827+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
2828+
2829+ virtual HRESULT __stdcall AfterCheckout(
2830+ /* [in] */ IVSSItem *pIItem,
2831+ /* [in] */ BSTR Local) = 0;
2832+
2833+ virtual HRESULT __stdcall BeforeCheckin(
2834+ /* [in] */ IVSSItem *pIItem,
2835+ /* [in] */ BSTR Local,
2836+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
2837+
2838+ virtual HRESULT __stdcall AfterCheckin(
2839+ /* [in] */ IVSSItem *pIItem,
2840+ /* [in] */ BSTR Local) = 0;
2841+
2842+ virtual HRESULT __stdcall BeforeUndoCheckout(
2843+ /* [in] */ IVSSItem *pIItem,
2844+ /* [in] */ BSTR Local,
2845+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
2846+
2847+ virtual HRESULT __stdcall AfterUndoCheckout(
2848+ /* [in] */ IVSSItem *pIItem,
2849+ /* [in] */ BSTR Local) = 0;
2850+
2851+ virtual HRESULT __stdcall BeforeRename(
2852+ /* [in] */ IVSSItem *pIItem,
2853+ /* [in] */ BSTR NewName,
2854+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
2855+
2856+ virtual HRESULT __stdcall AfterRename(
2857+ /* [in] */ IVSSItem *pIItem,
2858+ /* [in] */ BSTR OldName) = 0;
2859+
2860+ virtual HRESULT __stdcall BeforeBranch(
2861+ /* [in] */ IVSSItem *pIItem,
2862+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
2863+
2864+ virtual HRESULT __stdcall AfterBranch(
2865+ /* [in] */ IVSSItem *pIItem) = 0;
2866+
2867+ virtual HRESULT __stdcall BeforeEvent(
2868+ /* [in] */ long iEvent,
2869+ /* [in] */ IVSSItem *pIItem,
2870+ /* [in] */ BSTR Str,
2871+ /* [in] */ VARIANT var,
2872+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
2873+
2874+ virtual HRESULT __stdcall AfterEvent(
2875+ /* [in] */ long iEvent,
2876+ /* [in] */ IVSSItem *pIItem,
2877+ /* [in] */ BSTR Str,
2878+ /* [in] */ VARIANT var) = 0;
2879+
2880+ };
2881+
2882+#else /* C style interface */
2883+
2884+ typedef struct IVSSEventsOldVtbl
2885+ {
2886+ BEGIN_INTERFACE
2887+
2888+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2889+ IVSSEventsOld * This,
2890+ /* [in] */ REFIID riid,
2891+ /* [annotation][iid_is][out] */
2892+ __RPC__deref_out void **ppvObject);
2893+
2894+ ULONG ( STDMETHODCALLTYPE *AddRef )(
2895+ IVSSEventsOld * This);
2896+
2897+ ULONG ( STDMETHODCALLTYPE *Release )(
2898+ IVSSEventsOld * This);
2899+
2900+ HRESULT ( __stdcall *BeforeAdd )(
2901+ IVSSEventsOld * This,
2902+ /* [in] */ IVSSItem *pIPrj,
2903+ /* [in] */ BSTR Local,
2904+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
2905+
2906+ HRESULT ( __stdcall *AfterAdd )(
2907+ IVSSEventsOld * This,
2908+ /* [in] */ IVSSItem *pIItem,
2909+ /* [in] */ BSTR Local);
2910+
2911+ HRESULT ( __stdcall *BeforeCheckout )(
2912+ IVSSEventsOld * This,
2913+ /* [in] */ IVSSItem *pIItem,
2914+ /* [in] */ BSTR Local,
2915+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
2916+
2917+ HRESULT ( __stdcall *AfterCheckout )(
2918+ IVSSEventsOld * This,
2919+ /* [in] */ IVSSItem *pIItem,
2920+ /* [in] */ BSTR Local);
2921+
2922+ HRESULT ( __stdcall *BeforeCheckin )(
2923+ IVSSEventsOld * This,
2924+ /* [in] */ IVSSItem *pIItem,
2925+ /* [in] */ BSTR Local,
2926+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
2927+
2928+ HRESULT ( __stdcall *AfterCheckin )(
2929+ IVSSEventsOld * This,
2930+ /* [in] */ IVSSItem *pIItem,
2931+ /* [in] */ BSTR Local);
2932+
2933+ HRESULT ( __stdcall *BeforeUndoCheckout )(
2934+ IVSSEventsOld * This,
2935+ /* [in] */ IVSSItem *pIItem,
2936+ /* [in] */ BSTR Local,
2937+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
2938+
2939+ HRESULT ( __stdcall *AfterUndoCheckout )(
2940+ IVSSEventsOld * This,
2941+ /* [in] */ IVSSItem *pIItem,
2942+ /* [in] */ BSTR Local);
2943+
2944+ HRESULT ( __stdcall *BeforeRename )(
2945+ IVSSEventsOld * This,
2946+ /* [in] */ IVSSItem *pIItem,
2947+ /* [in] */ BSTR NewName,
2948+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
2949+
2950+ HRESULT ( __stdcall *AfterRename )(
2951+ IVSSEventsOld * This,
2952+ /* [in] */ IVSSItem *pIItem,
2953+ /* [in] */ BSTR OldName);
2954+
2955+ HRESULT ( __stdcall *BeforeBranch )(
2956+ IVSSEventsOld * This,
2957+ /* [in] */ IVSSItem *pIItem,
2958+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
2959+
2960+ HRESULT ( __stdcall *AfterBranch )(
2961+ IVSSEventsOld * This,
2962+ /* [in] */ IVSSItem *pIItem);
2963+
2964+ HRESULT ( __stdcall *BeforeEvent )(
2965+ IVSSEventsOld * This,
2966+ /* [in] */ long iEvent,
2967+ /* [in] */ IVSSItem *pIItem,
2968+ /* [in] */ BSTR Str,
2969+ /* [in] */ VARIANT var,
2970+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
2971+
2972+ HRESULT ( __stdcall *AfterEvent )(
2973+ IVSSEventsOld * This,
2974+ /* [in] */ long iEvent,
2975+ /* [in] */ IVSSItem *pIItem,
2976+ /* [in] */ BSTR Str,
2977+ /* [in] */ VARIANT var);
2978+
2979+ END_INTERFACE
2980+ } IVSSEventsOldVtbl;
2981+
2982+ interface IVSSEventsOld
2983+ {
2984+ CONST_VTBL struct IVSSEventsOldVtbl *lpVtbl;
2985+ };
2986+
2987+
2988+
2989+#ifdef COBJMACROS
2990+
2991+
2992+#define IVSSEventsOld_QueryInterface(This,riid,ppvObject) \
2993+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2994+
2995+#define IVSSEventsOld_AddRef(This) \
2996+ ( (This)->lpVtbl -> AddRef(This) )
2997+
2998+#define IVSSEventsOld_Release(This) \
2999+ ( (This)->lpVtbl -> Release(This) )
3000+
3001+
3002+#define IVSSEventsOld_BeforeAdd(This,pIPrj,Local,pbContinue) \
3003+ ( (This)->lpVtbl -> BeforeAdd(This,pIPrj,Local,pbContinue) )
3004+
3005+#define IVSSEventsOld_AfterAdd(This,pIItem,Local) \
3006+ ( (This)->lpVtbl -> AfterAdd(This,pIItem,Local) )
3007+
3008+#define IVSSEventsOld_BeforeCheckout(This,pIItem,Local,pbContinue) \
3009+ ( (This)->lpVtbl -> BeforeCheckout(This,pIItem,Local,pbContinue) )
3010+
3011+#define IVSSEventsOld_AfterCheckout(This,pIItem,Local) \
3012+ ( (This)->lpVtbl -> AfterCheckout(This,pIItem,Local) )
3013+
3014+#define IVSSEventsOld_BeforeCheckin(This,pIItem,Local,pbContinue) \
3015+ ( (This)->lpVtbl -> BeforeCheckin(This,pIItem,Local,pbContinue) )
3016+
3017+#define IVSSEventsOld_AfterCheckin(This,pIItem,Local) \
3018+ ( (This)->lpVtbl -> AfterCheckin(This,pIItem,Local) )
3019+
3020+#define IVSSEventsOld_BeforeUndoCheckout(This,pIItem,Local,pbContinue) \
3021+ ( (This)->lpVtbl -> BeforeUndoCheckout(This,pIItem,Local,pbContinue) )
3022+
3023+#define IVSSEventsOld_AfterUndoCheckout(This,pIItem,Local) \
3024+ ( (This)->lpVtbl -> AfterUndoCheckout(This,pIItem,Local) )
3025+
3026+#define IVSSEventsOld_BeforeRename(This,pIItem,NewName,pbContinue) \
3027+ ( (This)->lpVtbl -> BeforeRename(This,pIItem,NewName,pbContinue) )
3028+
3029+#define IVSSEventsOld_AfterRename(This,pIItem,OldName) \
3030+ ( (This)->lpVtbl -> AfterRename(This,pIItem,OldName) )
3031+
3032+#define IVSSEventsOld_BeforeBranch(This,pIItem,pbContinue) \
3033+ ( (This)->lpVtbl -> BeforeBranch(This,pIItem,pbContinue) )
3034+
3035+#define IVSSEventsOld_AfterBranch(This,pIItem) \
3036+ ( (This)->lpVtbl -> AfterBranch(This,pIItem) )
3037+
3038+#define IVSSEventsOld_BeforeEvent(This,iEvent,pIItem,Str,var,pbContinue) \
3039+ ( (This)->lpVtbl -> BeforeEvent(This,iEvent,pIItem,Str,var,pbContinue) )
3040+
3041+#define IVSSEventsOld_AfterEvent(This,iEvent,pIItem,Str,var) \
3042+ ( (This)->lpVtbl -> AfterEvent(This,iEvent,pIItem,Str,var) )
3043+
3044+#endif /* COBJMACROS */
3045+
3046+
3047+#endif /* C style interface */
3048+
3049+
3050+
3051+
3052+#endif /* __IVSSEventsOld_INTERFACE_DEFINED__ */
3053+
3054+
3055+#ifndef __IVSSEvents_INTERFACE_DEFINED__
3056+#define __IVSSEvents_INTERFACE_DEFINED__
3057+
3058+/* interface IVSSEvents */
3059+/* [object][helpstring][uuid] */
3060+
3061+
3062+EXTERN_C const IID IID_IVSSEvents;
3063+
3064+#if defined(__cplusplus) && !defined(CINTERFACE)
3065+
3066+ MIDL_INTERFACE("2A0DE0E8-2E9F-11D0-9236-00AA00A1EB95")
3067+ IVSSEvents : public IUnknown
3068+ {
3069+ public:
3070+ virtual HRESULT __stdcall BeforeAdd(
3071+ /* [in] */ IVSSItem *pIPrj,
3072+ /* [in] */ BSTR Local,
3073+ /* [in] */ BSTR Comment,
3074+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
3075+
3076+ virtual HRESULT __stdcall AfterAdd(
3077+ /* [in] */ IVSSItem *pIItem,
3078+ /* [in] */ BSTR Local,
3079+ /* [in] */ BSTR Comment) = 0;
3080+
3081+ virtual HRESULT __stdcall BeforeCheckout(
3082+ /* [in] */ IVSSItem *pIItem,
3083+ /* [in] */ BSTR Local,
3084+ /* [in] */ BSTR Comment,
3085+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
3086+
3087+ virtual HRESULT __stdcall AfterCheckout(
3088+ /* [in] */ IVSSItem *pIItem,
3089+ /* [in] */ BSTR Local,
3090+ /* [in] */ BSTR Comment) = 0;
3091+
3092+ virtual HRESULT __stdcall BeforeCheckin(
3093+ /* [in] */ IVSSItem *pIItem,
3094+ /* [in] */ BSTR Local,
3095+ /* [in] */ BSTR Comment,
3096+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
3097+
3098+ virtual HRESULT __stdcall AfterCheckin(
3099+ /* [in] */ IVSSItem *pIItem,
3100+ /* [in] */ BSTR Local,
3101+ /* [in] */ BSTR Comment) = 0;
3102+
3103+ virtual HRESULT __stdcall BeforeUndoCheckout(
3104+ /* [in] */ IVSSItem *pIItem,
3105+ /* [in] */ BSTR Local,
3106+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
3107+
3108+ virtual HRESULT __stdcall AfterUndoCheckout(
3109+ /* [in] */ IVSSItem *pIItem,
3110+ /* [in] */ BSTR Local) = 0;
3111+
3112+ virtual HRESULT __stdcall BeforeRename(
3113+ /* [in] */ IVSSItem *pIItem,
3114+ /* [in] */ BSTR NewName,
3115+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
3116+
3117+ virtual HRESULT __stdcall AfterRename(
3118+ /* [in] */ IVSSItem *pIItem,
3119+ /* [in] */ BSTR OldName) = 0;
3120+
3121+ virtual HRESULT __stdcall BeforeBranch(
3122+ /* [in] */ IVSSItem *pIItem,
3123+ /* [in] */ BSTR Comment,
3124+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
3125+
3126+ virtual HRESULT __stdcall AfterBranch(
3127+ /* [in] */ IVSSItem *pIItem,
3128+ /* [in] */ BSTR Comment) = 0;
3129+
3130+ virtual HRESULT __stdcall BeginCommand(
3131+ /* [in] */ long unused,
3132+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
3133+
3134+ virtual HRESULT __stdcall EndCommand(
3135+ /* [in] */ long unused) = 0;
3136+
3137+ virtual HRESULT __stdcall BeforeEvent(
3138+ /* [in] */ long iEvent,
3139+ /* [in] */ IVSSItem *pIItem,
3140+ /* [in] */ BSTR Str,
3141+ /* [in] */ VARIANT var,
3142+ /* [retval][out] */ VARIANT_BOOL *pbContinue) = 0;
3143+
3144+ virtual HRESULT __stdcall AfterEvent(
3145+ /* [in] */ long iEvent,
3146+ /* [in] */ IVSSItem *pIItem,
3147+ /* [in] */ BSTR Str,
3148+ /* [in] */ VARIANT var) = 0;
3149+
3150+ };
3151+
3152+#else /* C style interface */
3153+
3154+ typedef struct IVSSEventsVtbl
3155+ {
3156+ BEGIN_INTERFACE
3157+
3158+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3159+ IVSSEvents * This,
3160+ /* [in] */ REFIID riid,
3161+ /* [annotation][iid_is][out] */
3162+ __RPC__deref_out void **ppvObject);
3163+
3164+ ULONG ( STDMETHODCALLTYPE *AddRef )(
3165+ IVSSEvents * This);
3166+
3167+ ULONG ( STDMETHODCALLTYPE *Release )(
3168+ IVSSEvents * This);
3169+
3170+ HRESULT ( __stdcall *BeforeAdd )(
3171+ IVSSEvents * This,
3172+ /* [in] */ IVSSItem *pIPrj,
3173+ /* [in] */ BSTR Local,
3174+ /* [in] */ BSTR Comment,
3175+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
3176+
3177+ HRESULT ( __stdcall *AfterAdd )(
3178+ IVSSEvents * This,
3179+ /* [in] */ IVSSItem *pIItem,
3180+ /* [in] */ BSTR Local,
3181+ /* [in] */ BSTR Comment);
3182+
3183+ HRESULT ( __stdcall *BeforeCheckout )(
3184+ IVSSEvents * This,
3185+ /* [in] */ IVSSItem *pIItem,
3186+ /* [in] */ BSTR Local,
3187+ /* [in] */ BSTR Comment,
3188+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
3189+
3190+ HRESULT ( __stdcall *AfterCheckout )(
3191+ IVSSEvents * This,
3192+ /* [in] */ IVSSItem *pIItem,
3193+ /* [in] */ BSTR Local,
3194+ /* [in] */ BSTR Comment);
3195+
3196+ HRESULT ( __stdcall *BeforeCheckin )(
3197+ IVSSEvents * This,
3198+ /* [in] */ IVSSItem *pIItem,
3199+ /* [in] */ BSTR Local,
3200+ /* [in] */ BSTR Comment,
3201+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
3202+
3203+ HRESULT ( __stdcall *AfterCheckin )(
3204+ IVSSEvents * This,
3205+ /* [in] */ IVSSItem *pIItem,
3206+ /* [in] */ BSTR Local,
3207+ /* [in] */ BSTR Comment);
3208+
3209+ HRESULT ( __stdcall *BeforeUndoCheckout )(
3210+ IVSSEvents * This,
3211+ /* [in] */ IVSSItem *pIItem,
3212+ /* [in] */ BSTR Local,
3213+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
3214+
3215+ HRESULT ( __stdcall *AfterUndoCheckout )(
3216+ IVSSEvents * This,
3217+ /* [in] */ IVSSItem *pIItem,
3218+ /* [in] */ BSTR Local);
3219+
3220+ HRESULT ( __stdcall *BeforeRename )(
3221+ IVSSEvents * This,
3222+ /* [in] */ IVSSItem *pIItem,
3223+ /* [in] */ BSTR NewName,
3224+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
3225+
3226+ HRESULT ( __stdcall *AfterRename )(
3227+ IVSSEvents * This,
3228+ /* [in] */ IVSSItem *pIItem,
3229+ /* [in] */ BSTR OldName);
3230+
3231+ HRESULT ( __stdcall *BeforeBranch )(
3232+ IVSSEvents * This,
3233+ /* [in] */ IVSSItem *pIItem,
3234+ /* [in] */ BSTR Comment,
3235+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
3236+
3237+ HRESULT ( __stdcall *AfterBranch )(
3238+ IVSSEvents * This,
3239+ /* [in] */ IVSSItem *pIItem,
3240+ /* [in] */ BSTR Comment);
3241+
3242+ HRESULT ( __stdcall *BeginCommand )(
3243+ IVSSEvents * This,
3244+ /* [in] */ long unused,
3245+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
3246+
3247+ HRESULT ( __stdcall *EndCommand )(
3248+ IVSSEvents * This,
3249+ /* [in] */ long unused);
3250+
3251+ HRESULT ( __stdcall *BeforeEvent )(
3252+ IVSSEvents * This,
3253+ /* [in] */ long iEvent,
3254+ /* [in] */ IVSSItem *pIItem,
3255+ /* [in] */ BSTR Str,
3256+ /* [in] */ VARIANT var,
3257+ /* [retval][out] */ VARIANT_BOOL *pbContinue);
3258+
3259+ HRESULT ( __stdcall *AfterEvent )(
3260+ IVSSEvents * This,
3261+ /* [in] */ long iEvent,
3262+ /* [in] */ IVSSItem *pIItem,
3263+ /* [in] */ BSTR Str,
3264+ /* [in] */ VARIANT var);
3265+
3266+ END_INTERFACE
3267+ } IVSSEventsVtbl;
3268+
3269+ interface IVSSEvents
3270+ {
3271+ CONST_VTBL struct IVSSEventsVtbl *lpVtbl;
3272+ };
3273+
3274+
3275+
3276+#ifdef COBJMACROS
3277+
3278+
3279+#define IVSSEvents_QueryInterface(This,riid,ppvObject) \
3280+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3281+
3282+#define IVSSEvents_AddRef(This) \
3283+ ( (This)->lpVtbl -> AddRef(This) )
3284+
3285+#define IVSSEvents_Release(This) \
3286+ ( (This)->lpVtbl -> Release(This) )
3287+
3288+
3289+#define IVSSEvents_BeforeAdd(This,pIPrj,Local,Comment,pbContinue) \
3290+ ( (This)->lpVtbl -> BeforeAdd(This,pIPrj,Local,Comment,pbContinue) )
3291+
3292+#define IVSSEvents_AfterAdd(This,pIItem,Local,Comment) \
3293+ ( (This)->lpVtbl -> AfterAdd(This,pIItem,Local,Comment) )
3294+
3295+#define IVSSEvents_BeforeCheckout(This,pIItem,Local,Comment,pbContinue) \
3296+ ( (This)->lpVtbl -> BeforeCheckout(This,pIItem,Local,Comment,pbContinue) )
3297+
3298+#define IVSSEvents_AfterCheckout(This,pIItem,Local,Comment) \
3299+ ( (This)->lpVtbl -> AfterCheckout(This,pIItem,Local,Comment) )
3300+
3301+#define IVSSEvents_BeforeCheckin(This,pIItem,Local,Comment,pbContinue) \
3302+ ( (This)->lpVtbl -> BeforeCheckin(This,pIItem,Local,Comment,pbContinue) )
3303+
3304+#define IVSSEvents_AfterCheckin(This,pIItem,Local,Comment) \
3305+ ( (This)->lpVtbl -> AfterCheckin(This,pIItem,Local,Comment) )
3306+
3307+#define IVSSEvents_BeforeUndoCheckout(This,pIItem,Local,pbContinue) \
3308+ ( (This)->lpVtbl -> BeforeUndoCheckout(This,pIItem,Local,pbContinue) )
3309+
3310+#define IVSSEvents_AfterUndoCheckout(This,pIItem,Local) \
3311+ ( (This)->lpVtbl -> AfterUndoCheckout(This,pIItem,Local) )
3312+
3313+#define IVSSEvents_BeforeRename(This,pIItem,NewName,pbContinue) \
3314+ ( (This)->lpVtbl -> BeforeRename(This,pIItem,NewName,pbContinue) )
3315+
3316+#define IVSSEvents_AfterRename(This,pIItem,OldName) \
3317+ ( (This)->lpVtbl -> AfterRename(This,pIItem,OldName) )
3318+
3319+#define IVSSEvents_BeforeBranch(This,pIItem,Comment,pbContinue) \
3320+ ( (This)->lpVtbl -> BeforeBranch(This,pIItem,Comment,pbContinue) )
3321+
3322+#define IVSSEvents_AfterBranch(This,pIItem,Comment) \
3323+ ( (This)->lpVtbl -> AfterBranch(This,pIItem,Comment) )
3324+
3325+#define IVSSEvents_BeginCommand(This,unused,pbContinue) \
3326+ ( (This)->lpVtbl -> BeginCommand(This,unused,pbContinue) )
3327+
3328+#define IVSSEvents_EndCommand(This,unused) \
3329+ ( (This)->lpVtbl -> EndCommand(This,unused) )
3330+
3331+#define IVSSEvents_BeforeEvent(This,iEvent,pIItem,Str,var,pbContinue) \
3332+ ( (This)->lpVtbl -> BeforeEvent(This,iEvent,pIItem,Str,var,pbContinue) )
3333+
3334+#define IVSSEvents_AfterEvent(This,iEvent,pIItem,Str,var) \
3335+ ( (This)->lpVtbl -> AfterEvent(This,iEvent,pIItem,Str,var) )
3336+
3337+#endif /* COBJMACROS */
3338+
3339+
3340+#endif /* C style interface */
3341+
3342+
3343+
3344+
3345+#endif /* __IVSSEvents_INTERFACE_DEFINED__ */
3346+
3347+
3348+#ifndef __IVSS_INTERFACE_DEFINED__
3349+#define __IVSS_INTERFACE_DEFINED__
3350+
3351+/* interface IVSS */
3352+/* [object][oleautomation][dual][helpstring][uuid] */
3353+
3354+
3355+EXTERN_C const IID IID_IVSS;
3356+
3357+#if defined(__cplusplus) && !defined(CINTERFACE)
3358+
3359+ MIDL_INTERFACE("783CD4EB-9D54-11CF-B8EE-00608CC9A71F")
3360+ IVSS : public IDispatch
3361+ {
3362+ public:
3363+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_VSSDatabase(
3364+ /* [retval][out] */ IVSSDatabase **ppIVSSDatabase) = 0;
3365+
3366+ };
3367+
3368+#else /* C style interface */
3369+
3370+ typedef struct IVSSVtbl
3371+ {
3372+ BEGIN_INTERFACE
3373+
3374+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3375+ IVSS * This,
3376+ /* [in] */ REFIID riid,
3377+ /* [annotation][iid_is][out] */
3378+ __RPC__deref_out void **ppvObject);
3379+
3380+ ULONG ( STDMETHODCALLTYPE *AddRef )(
3381+ IVSS * This);
3382+
3383+ ULONG ( STDMETHODCALLTYPE *Release )(
3384+ IVSS * This);
3385+
3386+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
3387+ IVSS * This,
3388+ /* [out] */ UINT *pctinfo);
3389+
3390+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
3391+ IVSS * This,
3392+ /* [in] */ UINT iTInfo,
3393+ /* [in] */ LCID lcid,
3394+ /* [out] */ ITypeInfo **ppTInfo);
3395+
3396+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
3397+ IVSS * This,
3398+ /* [in] */ REFIID riid,
3399+ /* [size_is][in] */ LPOLESTR *rgszNames,
3400+ /* [range][in] */ UINT cNames,
3401+ /* [in] */ LCID lcid,
3402+ /* [size_is][out] */ DISPID *rgDispId);
3403+
3404+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
3405+ IVSS * This,
3406+ /* [in] */ DISPID dispIdMember,
3407+ /* [in] */ REFIID riid,
3408+ /* [in] */ LCID lcid,
3409+ /* [in] */ WORD wFlags,
3410+ /* [out][in] */ DISPPARAMS *pDispParams,
3411+ /* [out] */ VARIANT *pVarResult,
3412+ /* [out] */ EXCEPINFO *pExcepInfo,
3413+ /* [out] */ UINT *puArgErr);
3414+
3415+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VSSDatabase )(
3416+ IVSS * This,
3417+ /* [retval][out] */ IVSSDatabase **ppIVSSDatabase);
3418+
3419+ END_INTERFACE
3420+ } IVSSVtbl;
3421+
3422+ interface IVSS
3423+ {
3424+ CONST_VTBL struct IVSSVtbl *lpVtbl;
3425+ };
3426+
3427+
3428+
3429+#ifdef COBJMACROS
3430+
3431+
3432+#define IVSS_QueryInterface(This,riid,ppvObject) \
3433+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3434+
3435+#define IVSS_AddRef(This) \
3436+ ( (This)->lpVtbl -> AddRef(This) )
3437+
3438+#define IVSS_Release(This) \
3439+ ( (This)->lpVtbl -> Release(This) )
3440+
3441+
3442+#define IVSS_GetTypeInfoCount(This,pctinfo) \
3443+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
3444+
3445+#define IVSS_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
3446+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
3447+
3448+#define IVSS_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
3449+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
3450+
3451+#define IVSS_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
3452+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
3453+
3454+
3455+#define IVSS_get_VSSDatabase(This,ppIVSSDatabase) \
3456+ ( (This)->lpVtbl -> get_VSSDatabase(This,ppIVSSDatabase) )
3457+
3458+#endif /* COBJMACROS */
3459+
3460+
3461+#endif /* C style interface */
3462+
3463+
3464+
3465+
3466+#endif /* __IVSS_INTERFACE_DEFINED__ */
3467+
3468+
3469+#ifndef __IVSSEventHandler_INTERFACE_DEFINED__
3470+#define __IVSSEventHandler_INTERFACE_DEFINED__
3471+
3472+/* interface IVSSEventHandler */
3473+/* [object][helpstring][uuid] */
3474+
3475+
3476+EXTERN_C const IID IID_IVSSEventHandler;
3477+
3478+#if defined(__cplusplus) && !defined(CINTERFACE)
3479+
3480+ MIDL_INTERFACE("783CD4EA-9D54-11CF-B8EE-00608CC9A71F")
3481+ IVSSEventHandler : public IUnknown
3482+ {
3483+ public:
3484+ virtual HRESULT __stdcall Init(
3485+ /* [in] */ IVSS *pIVSS) = 0;
3486+
3487+ };
3488+
3489+#else /* C style interface */
3490+
3491+ typedef struct IVSSEventHandlerVtbl
3492+ {
3493+ BEGIN_INTERFACE
3494+
3495+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3496+ IVSSEventHandler * This,
3497+ /* [in] */ REFIID riid,
3498+ /* [annotation][iid_is][out] */
3499+ __RPC__deref_out void **ppvObject);
3500+
3501+ ULONG ( STDMETHODCALLTYPE *AddRef )(
3502+ IVSSEventHandler * This);
3503+
3504+ ULONG ( STDMETHODCALLTYPE *Release )(
3505+ IVSSEventHandler * This);
3506+
3507+ HRESULT ( __stdcall *Init )(
3508+ IVSSEventHandler * This,
3509+ /* [in] */ IVSS *pIVSS);
3510+
3511+ END_INTERFACE
3512+ } IVSSEventHandlerVtbl;
3513+
3514+ interface IVSSEventHandler
3515+ {
3516+ CONST_VTBL struct IVSSEventHandlerVtbl *lpVtbl;
3517+ };
3518+
3519+
3520+
3521+#ifdef COBJMACROS
3522+
3523+
3524+#define IVSSEventHandler_QueryInterface(This,riid,ppvObject) \
3525+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3526+
3527+#define IVSSEventHandler_AddRef(This) \
3528+ ( (This)->lpVtbl -> AddRef(This) )
3529+
3530+#define IVSSEventHandler_Release(This) \
3531+ ( (This)->lpVtbl -> Release(This) )
3532+
3533+
3534+#define IVSSEventHandler_Init(This,pIVSS) \
3535+ ( (This)->lpVtbl -> Init(This,pIVSS) )
3536+
3537+#endif /* COBJMACROS */
3538+
3539+
3540+#endif /* C style interface */
3541+
3542+
3543+
3544+
3545+#endif /* __IVSSEventHandler_INTERFACE_DEFINED__ */
3546+
3547+
3548+EXTERN_C const CLSID CLSID_VSSItem;
3549+
3550+#ifdef __cplusplus
3551+
3552+class DECLSPEC_UUID("783CD4E3-9D54-11CF-B8EE-00608CC9A71F")
3553+VSSItem;
3554+#endif
3555+
3556+EXTERN_C const CLSID CLSID_VSSVersion;
3557+
3558+#ifdef __cplusplus
3559+
3560+class DECLSPEC_UUID("783CD4EC-9D54-11CF-B8EE-00608CC9A71F")
3561+VSSVersion;
3562+#endif
3563+
3564+EXTERN_C const CLSID CLSID_VSSCheckout;
3565+
3566+#ifdef __cplusplus
3567+
3568+class DECLSPEC_UUID("2A0DE0E0-2E9F-11D0-9236-00AA00A1EB95")
3569+VSSCheckout;
3570+#endif
3571+
3572+EXTERN_C const CLSID CLSID_VSSDatabase;
3573+
3574+#ifdef __cplusplus
3575+
3576+class DECLSPEC_UUID("783CD4E4-9D54-11CF-B8EE-00608CC9A71F")
3577+VSSDatabase;
3578+#endif
3579+
3580+EXTERN_C const CLSID CLSID_VSSUser;
3581+
3582+#ifdef __cplusplus
3583+
3584+class DECLSPEC_UUID("2A0DE0E5-2E9F-11D0-9236-00AA00A1EB95")
3585+VSSUser;
3586+#endif
3587+
3588+EXTERN_C const CLSID CLSID_VSSApp;
3589+
3590+#ifdef __cplusplus
3591+
3592+class DECLSPEC_UUID("2A0DE0E1-2E9F-11D0-9236-00AA00A1EB95")
3593+VSSApp;
3594+#endif
3595+#endif /* __SourceSafeTypeLib_LIBRARY_DEFINED__ */
3596+
3597+/* Additional Prototypes for ALL interfaces */
3598+
3599+/* end of Additional Prototypes */
3600+
3601+#ifdef __cplusplus
3602+}
3603+#endif
3604+
3605+#endif
3606+
3607+
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/file.h (nonexistent)
+++ trunk/file.h (revision 4)
@@ -0,0 +1,64 @@
1+#pragma once
2+
3+#if !defined(WIN32_LEAN_AND_MEAN)
4+# define WIN32_LEAN_AND_MEAN
5+#endif
6+#if !defined(VC_EXTRALEAN)
7+# define VC_EXTRALEAN
8+#endif
9+#if !defined(STRICT)
10+# define STRICT
11+#endif
12+
13+#include <windows.h>
14+#include <mlang.h>
15+#include <fstream>
16+#include <string>
17+#include <vector>
18+#include "exception.h"
19+
20+struct File {
21+ typedef std::basic_string<TCHAR> tstring;
22+
23+ const HANDLE Handle;
24+
25+ File(const tstring &n) : Handle(::CreateFile(n.c_str(), GENERIC_READ,
26+ FILE_SHARE_READ, nullptr, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, 0)) {
27+ if (Handle == INVALID_HANDLE_VALUE) throw _win32_error(::GetLastError());
28+ }
29+
30+ ~File(void) { CloseHandle(Handle); }
31+
32+ DWORD GetSize(void) { return ::GetFileSize(Handle, nullptr); }
33+
34+ std::wstring Read(void) {
35+ std::vector<char> buf(GetSize());
36+ DWORD rd;
37+ if (!::ReadFile(Handle, &buf[0], buf.size(), &rd, nullptr)) throw _win32_error(::GetLastError());
38+
39+ _com_ptr_t<_com_IIID<IMultiLanguage2, &IID_IMultiLanguage2 >> multil2;
40+ _com_check(multil2.CreateInstance(CLSID_CMultiLanguage));
41+
42+ UINT codepage;
43+ {
44+ ::DetectEncodingInfo deinfo[1];
45+ int deinfo_size = sizeof(deinfo) / sizeof(deinfo[0]) /* == 1 */;
46+ int buf_size = buf.size();
47+
48+ HRESULT hr = multil2->DetectInputCodepage(MLDETECTCP_NONE, 0, &buf[0], &buf_size, deinfo, &deinfo_size);
49+ if (hr != S_OK) throw _com_error(hr);
50+ codepage = deinfo[0].nCodePage;
51+ }
52+ std::vector<wchar_t> wbuf(GetSize());
53+ {
54+ DWORD mode = 0;
55+ UINT buf_size = buf.size();
56+ UINT wbuf_size = wbuf.size();
57+ HRESULT hr = multil2->ConvertStringToUnicode(&mode, codepage, &buf[0], &buf_size, &wbuf[0], &wbuf_size);
58+ if (hr != S_OK) throw _com_error(hr);
59+ }
60+ return std::wstring(wbuf.begin(), wbuf.end());
61+ }
62+private:
63+ File(const File &);
64+};
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
--- trunk/EventsImpl.h (nonexistent)
+++ trunk/EventsImpl.h (revision 4)
@@ -0,0 +1,593 @@
1+#pragma once
2+
3+#include "StdAfx.h"
4+
5+#include <comdef.h>
6+#include <comip.h>
7+#include <comutil.h>
8+#include <shlobj.h>
9+#include <oleauto.h>
10+#include <shellapi.h>
11+
12+#include <string>
13+#include <list>
14+#include <map>
15+#include <iterator>
16+
17+#include "SSAPI.h"
18+#include "file.h"
19+#include "safearray.h"
20+#include "exception.h"
21+#include "unknown.h"
22+#include "jscript.h"
23+#include "window.h"
24+#include "notify.h"
25+#include "infoz.h"
26+
27+class EventsImpl : public IVSSEvents, private UnknownImpl, private MessageWindow::Listener {
28+private:
29+ friend struct Global;
30+ struct Global : public IDispatch {
31+ EventsImpl *that;
32+
33+ HRESULT __stdcall QueryInterface(REFIID riid, void **ppv) throw () try {
34+ if (!ppv) throw _com_error(E_POINTER);
35+ *ppv = nullptr;
36+ if (::IsEqualIID(riid, IID_IUnknown)) {
37+ *ppv = static_cast<IUnknown *>(this);
38+ } else if (::IsEqualIID(riid, IID_IDispatch)) {
39+ *ppv = static_cast<IDispatch *>(this);
40+ } else {
41+ throw _com_error(E_NOINTERFACE);
42+ }
43+ this->AddRef(/* in vain */);
44+ return S_OK;
45+ } catch (_com_error &hr) {
46+ return hr.Error();
47+ } catch (...) {
48+ return E_UNEXPECTED;
49+ }
50+
51+ ULONG __stdcall AddRef(void) throw() { return 1; }
52+
53+ ULONG __stdcall Release(void) throw() { return 1; }
54+
55+ HRESULT __stdcall GetTypeInfoCount(UINT *pctinfo) throw () try {
56+ if (!pctinfo) throw _com_error(E_POINTER);
57+ *pctinfo = 0;
58+ return S_OK;
59+ } catch (_com_error &hr) {
60+ return hr.Error();
61+ } catch (...) {
62+ return E_UNEXPECTED;
63+ }
64+
65+ HRESULT __stdcall GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) throw () try {
66+ throw _com_error(E_NOTIMPL);
67+ } catch (_com_error &hr) {
68+ return hr.Error();
69+ } catch (...) {
70+ return E_UNEXPECTED;
71+ }
72+
73+ HRESULT __stdcall GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) throw () try {
74+ if (!rgszNames) throw _com_error(E_INVALIDARG);
75+ if (!rgDispId) throw _com_error(E_POINTER);
76+
77+ if (lstrcmpiW(*rgszNames, L"setTimeout") == 0) {
78+ *rgDispId = dispidSETTIMEOUT;
79+ } else if (lstrcmpiW(*rgszNames, L"clearTimeout") == 0) {
80+ *rgDispId = dispidCLEARTIMEOUT;
81+ } else if (lstrcmpiW(*rgszNames, L"alert") == 0) {
82+ *rgDispId = dispidALERT;
83+// } else if (lstrcmpiW(*rgszNames, L"balloonAdd") == 0) {
84+// *rgDispId = dispidBALLOONADD;
85+ } else {
86+ throw _com_error(DISP_E_UNKNOWNNAME);
87+ }
88+ return S_OK;
89+ } catch (_com_error &hr) {
90+ return hr.Error();
91+ } catch (...) {
92+ return E_UNEXPECTED;
93+ }
94+
95+ HRESULT __stdcall Invoke(DISPID dispIdMember, REFIID /* riid */, LCID /* lcid */, WORD wFlags, DISPPARAMS *pDispParams, VARIANT * /* pVarResult */, EXCEPINFO * /* pExcepInfo */, UINT * /* puArgErr */) throw () try {
96+ if ((dispIdMember == dispidSETTIMEOUT) && (wFlags == DISPATCH_METHOD)) {
97+ if (pDispParams->cArgs != 2) throw _com_error(E_INVALIDARG);
98+ _variant_t m, e;
99+ _com_check(::VariantChangeType(m.GetAddress(), &(pDispParams->rgvarg[0]), 0, VT_I4));
100+ _com_check(::VariantChangeType(e.GetAddress(), &(pDispParams->rgvarg[1]), 0, VT_BSTR));
101+ that->SetTimeout(e.bstrVal, m.intVal);
102+ return S_OK;
103+ } else if ((dispIdMember == dispidCLEARTIMEOUT) && (wFlags == DISPATCH_METHOD)) {
104+ if (pDispParams->cArgs != 1) throw _com_error(E_INVALIDARG);
105+ _variant_t i;
106+ _com_check(::VariantChangeType(i.GetAddress(), &(pDispParams->rgvarg[0]), 0, VT_BSTR));
107+ that->ClearTimeout(i.intVal);
108+ return S_OK;
109+ } else if ((dispIdMember == dispidALERT) && (wFlags == DISPATCH_METHOD)) {
110+ if (pDispParams->cArgs != 1) throw _com_error(E_INVALIDARG);
111+ _variant_t b;
112+ _com_check(::VariantChangeType(b.GetAddress(), &(pDispParams->rgvarg[0]), 0, VT_BSTR));
113+ that->BalloonAdd(b.bstrVal);
114+ return S_OK;
115+// } else if ((dispIdMember == dispidBALLOONADD) && (wFlags == DISPATCH_METHOD)) {
116+// if (pDispParams->cArgs != 1) throw _com_error(E_INVALIDARG);
117+// _variant_t b;
118+// _com_check(::VariantChangeType(b.GetAddress(), &(pDispParams->rgvarg[0]), 0, VT_BSTR));
119+// that->BalloonAdd(b.bstrVal);
120+// return S_OK;
121+ }
122+ throw _com_error(E_NOTIMPL);
123+ } catch (_com_error &hr) {
124+ return hr.Error();
125+ } catch (...) {
126+ return E_UNEXPECTED;
127+ }
128+ };
129+
130+private:
131+ _com_ptr_t<_com_IIID<IVSS, &IID_IVSS>> VSS;
132+ MessageWindow window;
133+ JScript jscript;
134+ Global global;
135+ NOTIFYICONDATAW notifyicondata;
136+ NotifyArea notifyarea;
137+ InfoList infolist;
138+ std::map<int, std::wstring> timeouts;
139+
140+private:
141+ static BOOL __stdcall EnumResNameProc(HMODULE hModule, LPCTSTR lpszType, LPTSTR lpszName, LONG_PTR lParam) {
142+ HICON *result = reinterpret_cast<HICON *>(lParam);
143+ *result = ::LoadIcon(hModule, lpszName);
144+ return FALSE;
145+ }
146+
147+ static HICON GetVSSIcon(void) {
148+ HICON result = 0;
149+ HINSTANCE h = ::GetModuleHandle(0);
150+ ::EnumResourceNames(h, RT_GROUP_ICON, EnumResNameProc, reinterpret_cast<LONG_PTR>(&result));
151+ if (result == 0) throw _win32_error(::GetLastError());
152+ return result;
153+ }
154+
155+private:
156+ enum {
157+ dispidSETTIMEOUT = 0x1001L,
158+ dispidCLEARTIMEOUT = 0x1002L,
159+ dispidALERT = 0x1003L,
160+// dispidBALLOONADD = 0x1004L,
161+ };
162+
163+ static const UINT WM_NOTIFYICONCALLBACK = WM_APP + 100;
164+
165+ struct Constant {
166+ std::wstring JScriptFile;
167+ UINT TaskbarCreated;
168+ Constant(void) {
169+ wchar_t appdata[MAX_PATH];
170+ if (!::SHGetSpecialFolderPathW(0, appdata, CSIDL_APPDATA, TRUE)) throw _com_error(E_UNEXPECTED);
171+ JScriptFile = std::wstring(appdata) + L"\\vssjscript\\vssjscript.js";
172+
173+ TaskbarCreated = ::RegisterWindowMessage(TEXT("TaskbarCreated"));
174+ if (TaskbarCreated == 0) throw _win32_error(::GetLastError());
175+ }
176+ };
177+ static const Constant CONSTANT;
178+
179+private:
180+ void ShowError(const std::wstring &mssg) {
181+ try {
182+ BalloonAdd(mssg);
183+ } catch (...) {
184+ ::MessageBoxW(0, mssg.c_str(), nullptr, MB_OK | MB_ICONERROR | MB_TASKMODAL);
185+ }
186+ }
187+ void ShowError(LPCWSTR mssg) {
188+ ShowError(std::wstring(mssg));
189+ }
190+
191+private:
192+ struct Database {
193+ std::wstring SrcSafeIni;
194+ std::wstring UserName;
195+ };
196+
197+ static Database GetDatabase(IVSS *vss) {
198+ _com_ptr_t<_com_IIID<IVSSDatabase, &IID_IVSSDatabase>> db;
199+ _com_check(vss->get_VSSDatabase(&db));
200+ _bstr_t srcsafeini;
201+ _com_check(db->get_SrcSafeIni(srcsafeini.GetAddress()));
202+ _bstr_t username;
203+ _com_check(db->get_Username(username.GetAddress()));
204+ Database result;
205+ result.SrcSafeIni = srcsafeini;
206+ result.UserName = username;
207+ return result;
208+ }
209+
210+ struct Item {
211+ std::wstring Spec;
212+ long VersionNnmber;
213+ };
214+
215+ static Item GetItem(IVSSItem *item) {
216+ _bstr_t spec;
217+ _com_check(item->get_Spec(spec.GetAddress()));
218+ long versionNnmber;
219+ _com_check(item->get_VersionNumber(&versionNnmber));
220+ Item result;
221+ result.Spec = spec;
222+ result.VersionNnmber = versionNnmber;
223+ return result;
224+ }
225+
226+private:
227+ int SetTimeout(const std::wstring &code, int millisecond) {
228+ static int count = 0;
229+ int id = ++count;
230+ timeouts[id] = code;
231+ try {
232+ if (::SetTimer(window.GetHandle(), id, millisecond, nullptr) == 0) throw _win32_error(::GetLastError());
233+ } catch (...) {
234+ timeouts.erase(id);
235+ throw;
236+ }
237+ return id;
238+ }
239+
240+ void ClearTimeout(int id) {
241+ if (timeouts.find(id) != timeouts.end()) {
242+ timeouts.erase(id);
243+ ::KillTimer(window.GetHandle(), id);
244+ }
245+ }
246+
247+ void BalloonAdd(const std::wstring &mssg) {
248+ const std::wstring szInfo = infolist.AddText(mssg);
249+ strcopy(szInfo , notifyicondata.szInfo, infolist.MaxLength);
250+
251+ const size_t SZINFOTITLE = sizeof(notifyicondata.szInfoTitle) / sizeof(notifyicondata.szInfoTitle[0]);
252+ const Database db = GetDatabase(VSS);
253+ strcopy(db.SrcSafeIni, notifyicondata.szInfoTitle, SZINFOTITLE);
254+
255+ notifyarea.SetIcon(&notifyicondata);
256+ }
257+
258+private:
259+ bool InitScript(void) {
260+ try {
261+ File f(CONSTANT.JScriptFile);
262+ std::wstring code = f.Read();
263+ jscript.Reset(code, &global);
264+ return true;
265+ } catch (_com_error hr) {
266+ jscript.Reset(L"", &global);
267+ ShowError(std::wstring(L"can't load '") + CONSTANT.JScriptFile + std::wstring(L"'"));
268+ return false;
269+ }
270+ }
271+
272+protected:
273+ LRESULT WindowProc(HWND h, UINT m, WPARAM w, LPARAM l) {
274+ try {
275+ if (m == CONSTANT.TaskbarCreated) {
276+ notifyarea.ClearIcon();
277+ notifyarea.SetIcon(&notifyicondata);
278+ } else if (m == WM_NOTIFYICONCALLBACK) {
279+ if (l == WM_LBUTTONDOWN) {
280+ notifyarea.SetIcon(&notifyicondata);
281+ } else if (l == WM_RBUTTONDOWN) {
282+ InitScript();
283+ }
284+ } else if (m == WM_TIMER) {
285+ ::KillTimer(h, w);
286+ auto found = timeouts.find(w);
287+ if (found != timeouts.end()) {
288+ const std::wstring e = found->second;
289+ timeouts.erase(found);
290+ jscript.Eval(e);
291+ }
292+ }
293+ } catch (_com_error &hr) {
294+ ShowError(hr.ErrorMessage());
295+ } catch (...) {
296+ ShowError(L"Error @ WindowProc");
297+ }
298+ return ::DefWindowProc(h, m, w, l);
299+ }
300+
301+protected:
302+ virtual ~EventsImpl(void) { }
303+
304+public:
305+ EventsImpl(IVSS *pIVSS) : VSS(pIVSS), infolist(sizeof(notifyicondata.szInfo) / sizeof(notifyicondata.szInfo[0])) {
306+ global.that = this;
307+ window.SetListener(this);
308+ ::ZeroMemory(&notifyicondata, sizeof(notifyicondata));
309+ notifyicondata.cbSize = sizeof(notifyicondata);
310+ notifyicondata.hWnd = window.GetHandle();
311+ notifyicondata.uID = reinterpret_cast<UINT>(this);
312+ notifyicondata.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE | NIF_INFO;
313+ notifyicondata.uCallbackMessage = WM_NOTIFYICONCALLBACK;
314+ notifyicondata.hIcon = GetVSSIcon();
315+ notifyicondata.szTip[0x0] = L'V';
316+ notifyicondata.szTip[0x1] = L'S';
317+ notifyicondata.szTip[0x2] = L'S';
318+ notifyicondata.szTip[0x3] = L'J';
319+ notifyicondata.szTip[0x4] = L'S';
320+ notifyicondata.szTip[0x5] = L'c';
321+ notifyicondata.szTip[0x6] = L'r';
322+ notifyicondata.szTip[0x7] = L'i';
323+ notifyicondata.szTip[0x8] = L'p';
324+ notifyicondata.szTip[0x9] = L't';
325+ notifyicondata.szTip[0xa] = L'\0';
326+ notifyicondata.dwState = 0;
327+ notifyicondata.dwStateMask = 0;
328+ notifyicondata.szInfo[00] = L'\0';
329+ notifyicondata.uTimeout = 0;
330+ notifyicondata.szInfoTitle[0] = L'\0';
331+ notifyicondata.dwInfoFlags = NIIF_INFO;
332+ notifyarea.SetIcon(&notifyicondata);
333+ InitScript();
334+ }
335+
336+public:
337+ HRESULT __stdcall QueryInterface(REFIID riid, void **ppv) throw () try {
338+ if (!ppv) throw _com_error(E_POINTER);
339+ *ppv = nullptr;
340+ if (::IsEqualIID(riid, IID_IUnknown)) {
341+ *ppv = static_cast<IUnknown *>(this);
342+ } else if (::IsEqualIID(riid, IID_IVSSEvents)) {
343+ *ppv = static_cast<IVSSEvents *>(this);
344+ } else {
345+ throw _com_error(E_NOINTERFACE);
346+ }
347+ this->AddRef();
348+ return S_OK;
349+ } catch (_com_error &hr) {
350+ return hr.Error();
351+ } catch (...) {
352+ return E_UNEXPECTED;
353+ }
354+
355+ ULONG __stdcall AddRef(void) throw() { return UnknownImpl::AddRef(); }
356+
357+ ULONG __stdcall Release(void) throw() { return UnknownImpl::Release(); }
358+
359+public:
360+ HRESULT __stdcall BeforeAdd(IVSSItem *pIPrj, BSTR Local, BSTR Comment, VARIANT_BOOL *pbContinue) throw () try {
361+ if (!pbContinue) throw _com_error(E_POINTER);
362+ *pbContinue = VARIANT_FALSE;
363+ Database db = GetDatabase(VSS);
364+ Item item = GetItem(pIPrj);
365+ try {
366+ jscript.BeforeAdd(db.SrcSafeIni, db.UserName, item.Spec, item.VersionNnmber, Local, Comment);
367+ *pbContinue = VARIANT_TRUE;
368+ } catch (_com_error &hr) {
369+ ShowError(hr.Description());
370+ }
371+ return S_OK;
372+ } catch (_com_error &hr) {
373+ return hr.Error();
374+ } catch (...) {
375+ return E_UNEXPECTED;
376+ }
377+
378+ HRESULT __stdcall AfterAdd(IVSSItem *pIItem, BSTR Local, BSTR Comment) throw () try {
379+ Database db = GetDatabase(VSS);
380+ Item item = GetItem(pIItem);
381+ try {
382+ jscript.AfterAdd(db.SrcSafeIni, db.UserName, item.Spec, item.VersionNnmber, Local, Comment);
383+ } catch (_com_error &hr) {
384+ ShowError(hr.Description());
385+ }
386+ return S_OK;
387+ } catch (_com_error &hr) {
388+ return hr.Error();
389+ } catch (...) {
390+ return E_UNEXPECTED;
391+ }
392+
393+ HRESULT __stdcall BeforeCheckout(IVSSItem *pIItem, BSTR Local, BSTR Comment, VARIANT_BOOL *pbContinue) throw () try {
394+ if (!pbContinue) throw _com_error(E_POINTER);
395+ *pbContinue = VARIANT_FALSE;
396+ Database db = GetDatabase(VSS);
397+ Item item = GetItem(pIItem);
398+ try {
399+ jscript.BeforeCheckout(db.SrcSafeIni, db.UserName, item.Spec, item.VersionNnmber, Local, Comment);
400+ *pbContinue = VARIANT_TRUE;
401+ } catch (_com_error &hr) {
402+ ShowError(hr.Description());
403+ }
404+ return S_OK;
405+ } catch (_com_error &hr) {
406+ return hr.Error();
407+ } catch (...) {
408+ return E_UNEXPECTED;
409+ }
410+
411+ HRESULT __stdcall AfterCheckout(IVSSItem *pIItem, BSTR Local, BSTR Comment) throw () try {
412+ Database db = GetDatabase(VSS);
413+ Item item = GetItem(pIItem);
414+ try {
415+ jscript.AfterCheckout(db.SrcSafeIni, db.UserName, item.Spec, item.VersionNnmber, Local, Comment);
416+ } catch (_com_error &hr) {
417+ ShowError(hr.Description());
418+ }
419+ return S_OK;
420+ } catch (_com_error &hr) {
421+ return hr.Error();
422+ } catch (...) {
423+ return E_UNEXPECTED;
424+ }
425+
426+ HRESULT __stdcall BeforeCheckin(IVSSItem *pIItem, BSTR Local, BSTR Comment, VARIANT_BOOL *pbContinue) throw () try {
427+ if (!pbContinue) throw _com_error(E_POINTER);
428+ *pbContinue = VARIANT_FALSE;
429+ Database db = GetDatabase(VSS);
430+ Item item = GetItem(pIItem);
431+ try {
432+ jscript.BeforeCheckin(db.SrcSafeIni, db.UserName, item.Spec, item.VersionNnmber, Local, Comment);
433+ *pbContinue = VARIANT_TRUE;
434+ } catch (_com_error &hr) {
435+ ShowError(hr.Description());
436+ }
437+ return S_OK;
438+ } catch (_com_error &hr) {
439+ return hr.Error();
440+ } catch (...) {
441+ return E_UNEXPECTED;
442+ }
443+
444+ HRESULT __stdcall AfterCheckin(IVSSItem *pIItem, BSTR Local, BSTR Comment) throw () try {
445+ Database db = GetDatabase(VSS);
446+ Item item = GetItem(pIItem);
447+ try {
448+ jscript.AfterCheckin(db.SrcSafeIni, db.UserName, item.Spec, item.VersionNnmber, Local, Comment);
449+ } catch (_com_error &hr) {
450+ ShowError(hr.Description());
451+ }
452+ return S_OK;
453+ } catch (_com_error &hr) {
454+ return hr.Error();
455+ } catch (...) {
456+ return E_UNEXPECTED;
457+ }
458+
459+ HRESULT __stdcall BeforeUndoCheckout(IVSSItem *pIItem, BSTR Local, VARIANT_BOOL *pbContinue) throw () try {
460+ if (!pbContinue) throw _com_error(E_POINTER);
461+ *pbContinue = VARIANT_FALSE;
462+ Database db = GetDatabase(VSS);
463+ Item item = GetItem(pIItem);
464+ try {
465+ jscript.BeforeUndoCheckout(db.SrcSafeIni, db.UserName, item.Spec, item.VersionNnmber, Local);
466+ *pbContinue = VARIANT_TRUE;
467+ } catch (_com_error &hr) {
468+ ShowError(hr.Description());
469+ }
470+ return S_OK;
471+ } catch (_com_error &hr) {
472+ return hr.Error();
473+ } catch (...) {
474+ return E_UNEXPECTED;
475+ }
476+
477+ HRESULT __stdcall AfterUndoCheckout(IVSSItem *pIItem, BSTR Local) throw () try {
478+ Database db = GetDatabase(VSS);
479+ Item item = GetItem(pIItem);
480+ try {
481+ jscript.AfterUndoCheckout(db.SrcSafeIni, db.UserName, item.Spec, item.VersionNnmber, Local);
482+ } catch (_com_error &hr) {
483+ ShowError(hr.Description());
484+ }
485+ return S_OK;
486+ } catch (_com_error &hr) {
487+ return hr.Error();
488+ } catch (...) {
489+ return E_UNEXPECTED;
490+ }
491+
492+ HRESULT __stdcall BeforeRename(IVSSItem *pIItem, BSTR NewName, VARIANT_BOOL *pbContinue) throw () try {
493+ if (!pbContinue) throw _com_error(E_POINTER);
494+ *pbContinue = VARIANT_FALSE;
495+ Database db = GetDatabase(VSS);
496+ Item item = GetItem(pIItem);
497+ try {
498+ jscript.BeforeRename(db.SrcSafeIni, db.UserName, item.Spec, item.VersionNnmber, NewName);
499+ *pbContinue = VARIANT_TRUE;
500+ } catch (_com_error &hr) {
501+ ShowError(hr.Description());
502+ }
503+ return S_OK;
504+ } catch (_com_error &hr) {
505+ return hr.Error();
506+ } catch (...) {
507+ return E_UNEXPECTED;
508+ }
509+
510+ HRESULT __stdcall AfterRename(IVSSItem *pIItem, BSTR OldName) throw () try {
511+ Database db = GetDatabase(VSS);
512+ Item item = GetItem(pIItem);
513+ try {
514+ jscript.AfterRename(db.SrcSafeIni, db.UserName, item.Spec, item.VersionNnmber, OldName);
515+ } catch (_com_error &hr) {
516+ ShowError(hr.Description());
517+ }
518+ return S_OK;
519+ } catch (_com_error &hr) {
520+ return hr.Error();
521+ } catch (...) {
522+ return E_UNEXPECTED;
523+ }
524+
525+ HRESULT __stdcall BeforeBranch(IVSSItem *pIItem, BSTR Comment, VARIANT_BOOL *pbContinue) throw () try {
526+ if (!pbContinue) throw _com_error(E_POINTER);
527+ *pbContinue = VARIANT_FALSE;
528+ Database db = GetDatabase(VSS);
529+ Item item = GetItem(pIItem);
530+ try {
531+ jscript.BeforeBranch(db.SrcSafeIni, db.UserName, item.Spec, item.VersionNnmber, Comment);
532+ *pbContinue = VARIANT_TRUE;
533+ } catch (_com_error &hr) {
534+ ShowError(hr.Description());
535+ }
536+ return S_OK;
537+ } catch (_com_error &hr) {
538+ return hr.Error();
539+ } catch (...) {
540+ return E_UNEXPECTED;
541+ }
542+
543+ HRESULT __stdcall AfterBranch(IVSSItem *pIItem, BSTR Comment) throw () try {
544+ Database db = GetDatabase(VSS);
545+ Item item = GetItem(pIItem);
546+ try {
547+ jscript.AfterBranch(db.SrcSafeIni, db.UserName, item.Spec, item.VersionNnmber, Comment);
548+ } catch (_com_error &hr) {
549+ ShowError(hr.Description());
550+ }
551+ return S_OK;
552+ } catch (_com_error &hr) {
553+ return hr.Error();
554+ } catch (...) {
555+ return E_UNEXPECTED;
556+ }
557+
558+ HRESULT __stdcall BeginCommand(long unused, VARIANT_BOOL *pbContinue) throw () try {
559+ if (!pbContinue) throw _com_error(E_POINTER);
560+ *pbContinue = VARIANT_TRUE;
561+ return S_OK;
562+ } catch (_com_error &hr) {
563+ return hr.Error();
564+ } catch (...) {
565+ return E_UNEXPECTED;
566+ }
567+
568+ HRESULT __stdcall EndCommand(long unused) throw () try {
569+ return S_OK;
570+ } catch (_com_error &hr) {
571+ return hr.Error();
572+ } catch (...) {
573+ return E_UNEXPECTED;
574+ }
575+
576+ HRESULT __stdcall BeforeEvent(long iEvent, IVSSItem *pIItem, BSTR Str, VARIANT var, VARIANT_BOOL *pbContinue) throw () try {
577+ if (!pbContinue) throw _com_error(E_POINTER);
578+ *pbContinue = VARIANT_TRUE;
579+ return S_OK;
580+ } catch (_com_error &hr) {
581+ return hr.Error();
582+ } catch (...) {
583+ return E_UNEXPECTED;
584+ }
585+
586+ HRESULT __stdcall AfterEvent(long iEvent, IVSSItem *pIItem, BSTR Str, VARIANT var) throw () try {
587+ return S_OK;
588+ } catch (_com_error &hr) {
589+ return hr.Error();
590+ } catch (...) {
591+ return E_UNEXPECTED;
592+ }
593+};
Added: svn:needs-lock
## -0,0 +1 ##
+*
\ No newline at end of property
Show on old repository browser