Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

600 lines
17 KiB

  1. /* This header file machine-generated by mktyplib.exe */
  2. /* Interface to type library: SourceSafeTypeLib */
  3. #ifndef _SourceSafeTypeLib_H_
  4. #define _SourceSafeTypeLib_H_
  5. DEFINE_GUID(LIBID_SourceSafeTypeLib,0x783CD4E0L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
  6. #ifndef BEGIN_INTERFACE
  7. #define BEGIN_INTERFACE
  8. #endif
  9. typedef enum _VSSFlags {
  10. VSSFLAG_USERRONO = 1,
  11. VSSFLAG_USERROYES = 2,
  12. VSSFLAG_TIMENOW = 4,
  13. VSSFLAG_TIMEMOD = 8,
  14. VSSFLAG_TIMEUPD = 12,
  15. VSSFLAG_EOLCR = 16,
  16. VSSFLAG_EOLLF = 32,
  17. VSSFLAG_EOLCRLF = 48,
  18. VSSFLAG_REPASK = 64,
  19. VSSFLAG_REPREPLACE = 128,
  20. VSSFLAG_REPSKIP = 192,
  21. VSSFLAG_REPMERGE = 256,
  22. VSSFLAG_CMPFULL = 512,
  23. VSSFLAG_CMPTIME = 1024,
  24. VSSFLAG_CMPCHKSUM = 1536,
  25. VSSFLAG_CMPFAIL = 2048,
  26. VSSFLAG_RECURSNO = 4096,
  27. VSSFLAG_RECURSYES = 8192,
  28. VSSFLAG_FORCEDIRNO = 16384,
  29. VSSFLAG_FORCEDIRYES = 32768,
  30. VSSFLAG_KEEPNO = 65536,
  31. VSSFLAG_KEEPYES = 131072,
  32. VSSFLAG_DELNO = 262144,
  33. VSSFLAG_DELYES = 524288,
  34. VSSFLAG_DELNOREPLACE = 786432,
  35. VSSFLAG_BINTEST = 1048576,
  36. VSSFLAG_BINBINARY = 2097152,
  37. VSSFLAG_BINTEXT = 3145728,
  38. VSSFLAG_DELTAYES = 4194304,
  39. VSSFLAG_DELTANO = 8388608,
  40. VSSFLAG_UPDASK = 16777216,
  41. VSSFLAG_UPDUPDATE = 33554432,
  42. VSSFLAG_UPDUNCH = 50331648,
  43. VSSFLAG_GETYES = 67108864,
  44. VSSFLAG_GETNO = 134217728,
  45. VSSFLAG_CHKEXCLUSIVEYES = 268435456,
  46. VSSFLAG_CHKEXCLUSIVENO = 536870912,
  47. VSSFLAG_HISTIGNOREFILES = 1073741824
  48. } VSSFlags;
  49. typedef enum _VSSFileStatus {
  50. VSSFILE_NOTCHECKEDOUT = 0,
  51. VSSFILE_CHECKEDOUT = 1,
  52. VSSFILE_CHECKEDOUT_ME = 2
  53. } VSSFileStatus;
  54. typedef enum _VSSItemType {
  55. VSSITEM_PROJECT = 0,
  56. VSSITEM_FILE = 1
  57. } VSSItemType;
  58. interface IVSSItems;
  59. interface IVSSVersions;
  60. interface IVSSVersion;
  61. interface IVSSCheckouts;
  62. interface IVSSCheckout;
  63. DEFINE_GUID(IID_IVSSItem,0x783CD4E1L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
  64. /* Definition of interface: IVSSItem */
  65. #undef INTERFACE
  66. #define INTERFACE IVSSItem
  67. DECLARE_INTERFACE_(IVSSItem, IDispatch)
  68. {
  69. BEGIN_INTERFACE
  70. #ifndef NO_BASEINTERFACE_FUNCS
  71. /* IUnknown methods */
  72. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  73. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  74. STDMETHOD_(ULONG, Release)(THIS) PURE;
  75. /* IDispatch methods */
  76. STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  77. STDMETHOD(GetTypeInfo)(
  78. THIS_
  79. UINT itinfo,
  80. LCID lcid,
  81. ITypeInfo FAR* FAR* pptinfo) PURE;
  82. STDMETHOD(GetIDsOfNames)(
  83. THIS_
  84. REFIID riid,
  85. OLECHAR FAR* FAR* rgszNames,
  86. UINT cNames,
  87. LCID lcid,
  88. DISPID FAR* rgdispid) PURE;
  89. STDMETHOD(Invoke)(
  90. THIS_
  91. DISPID dispidMember,
  92. REFIID riid,
  93. LCID lcid,
  94. WORD wFlags,
  95. DISPPARAMS FAR* pdispparams,
  96. VARIANT FAR* pvarResult,
  97. EXCEPINFO FAR* pexcepinfo,
  98. UINT FAR* puArgErr) PURE;
  99. #endif
  100. /* IVSSItem methods */
  101. STDMETHOD(get_Spec)(THIS_ BSTR FAR* pSpec) PURE;
  102. STDMETHOD(get_Binary)(THIS_ VARIANT_BOOL FAR* pbBinary) PURE;
  103. STDMETHOD(put_Binary)(THIS_ VARIANT_BOOL bBinary) PURE;
  104. STDMETHOD(get_Deleted)(THIS_ VARIANT_BOOL FAR* pbDeleted) PURE;
  105. STDMETHOD(put_Deleted)(THIS_ VARIANT_BOOL bDeleted) PURE;
  106. STDMETHOD(get_Type)(THIS_ int FAR* piType) PURE;
  107. STDMETHOD(get_LocalSpec)(THIS_ BSTR FAR* pLocal) PURE;
  108. STDMETHOD(put_LocalSpec)(THIS_ BSTR Local) PURE;
  109. STDMETHOD(get_Name)(THIS_ BSTR FAR* pName) PURE;
  110. STDMETHOD(put_Name)(THIS_ BSTR Name) PURE;
  111. STDMETHOD(get_Parent)(THIS_ IVSSItem FAR* FAR* ppIParent) PURE;
  112. STDMETHOD(get_VersionNumber)(THIS_ long FAR* piVersion) PURE;
  113. STDMETHOD(get_Items)(THIS_ VARIANT_BOOL IncludeDeleted, IVSSItems FAR* FAR* ppIItems) PURE;
  114. STDMETHOD(Get)(THIS_ BSTR FAR* Local, long iFlags) PURE;
  115. STDMETHOD(Checkout)(THIS_ BSTR Comment, BSTR Local, long iFlags) PURE;
  116. STDMETHOD(Checkin)(THIS_ BSTR Comment, BSTR Local, long iFlags) PURE;
  117. STDMETHOD(UndoCheckout)(THIS_ BSTR Local, long iFlags) PURE;
  118. STDMETHOD(get_IsCheckedOut)(THIS_ long FAR* piStatus) PURE;
  119. STDMETHOD(get_Checkouts)(THIS_ IVSSCheckouts FAR* FAR* ppICheckouts) PURE;
  120. STDMETHOD(get_IsDifferent)(THIS_ BSTR Local, VARIANT_BOOL FAR* pbDifferent) PURE;
  121. STDMETHOD(Add)(THIS_ BSTR Local, BSTR Comment, long iFlags, IVSSItem FAR* FAR* ppIItem) PURE;
  122. STDMETHOD(NewSubproject)(THIS_ BSTR Name, BSTR Comment, IVSSItem FAR* FAR* ppIItem) PURE;
  123. STDMETHOD(Share)(THIS_ IVSSItem FAR* pIItem, BSTR Comment, long iFlags) PURE;
  124. STDMETHOD(Destroy)(THIS) PURE;
  125. STDMETHOD(Move)(THIS_ IVSSItem FAR* pINewParent) PURE;
  126. STDMETHOD(Label)(THIS_ BSTR Label, BSTR Comment) PURE;
  127. STDMETHOD(get_Versions)(THIS_ long iFlags, IVSSVersions FAR* FAR* pIVersions) PURE;
  128. STDMETHOD(get_Version)(THIS_ VARIANT Version, IVSSItem FAR* FAR* ppIItem) PURE;
  129. };
  130. DEFINE_GUID(IID_IVSSVersions,0x783CD4E7L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
  131. /* Definition of interface: IVSSVersions */
  132. #undef INTERFACE
  133. #define INTERFACE IVSSVersions
  134. DECLARE_INTERFACE_(IVSSVersions, IDispatch)
  135. {
  136. BEGIN_INTERFACE
  137. #ifndef NO_BASEINTERFACE_FUNCS
  138. /* IUnknown methods */
  139. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  140. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  141. STDMETHOD_(ULONG, Release)(THIS) PURE;
  142. /* IDispatch methods */
  143. STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  144. STDMETHOD(GetTypeInfo)(
  145. THIS_
  146. UINT itinfo,
  147. LCID lcid,
  148. ITypeInfo FAR* FAR* pptinfo) PURE;
  149. STDMETHOD(GetIDsOfNames)(
  150. THIS_
  151. REFIID riid,
  152. OLECHAR FAR* FAR* rgszNames,
  153. UINT cNames,
  154. LCID lcid,
  155. DISPID FAR* rgdispid) PURE;
  156. STDMETHOD(Invoke)(
  157. THIS_
  158. DISPID dispidMember,
  159. REFIID riid,
  160. LCID lcid,
  161. WORD wFlags,
  162. DISPPARAMS FAR* pdispparams,
  163. VARIANT FAR* pvarResult,
  164. EXCEPINFO FAR* pexcepinfo,
  165. UINT FAR* puArgErr) PURE;
  166. #endif
  167. /* IVSSVersions methods */
  168. STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* ppIEnum) PURE;
  169. };
  170. DEFINE_GUID(IID_IVSSVersion,0x783CD4E8L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
  171. /* Definition of interface: IVSSVersion */
  172. #undef INTERFACE
  173. #define INTERFACE IVSSVersion
  174. DECLARE_INTERFACE_(IVSSVersion, IDispatch)
  175. {
  176. BEGIN_INTERFACE
  177. #ifndef NO_BASEINTERFACE_FUNCS
  178. /* IUnknown methods */
  179. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  180. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  181. STDMETHOD_(ULONG, Release)(THIS) PURE;
  182. /* IDispatch methods */
  183. STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  184. STDMETHOD(GetTypeInfo)(
  185. THIS_
  186. UINT itinfo,
  187. LCID lcid,
  188. ITypeInfo FAR* FAR* pptinfo) PURE;
  189. STDMETHOD(GetIDsOfNames)(
  190. THIS_
  191. REFIID riid,
  192. OLECHAR FAR* FAR* rgszNames,
  193. UINT cNames,
  194. LCID lcid,
  195. DISPID FAR* rgdispid) PURE;
  196. STDMETHOD(Invoke)(
  197. THIS_
  198. DISPID dispidMember,
  199. REFIID riid,
  200. LCID lcid,
  201. WORD wFlags,
  202. DISPPARAMS FAR* pdispparams,
  203. VARIANT FAR* pvarResult,
  204. EXCEPINFO FAR* pexcepinfo,
  205. UINT FAR* puArgErr) PURE;
  206. #endif
  207. /* IVSSVersion methods */
  208. STDMETHOD(get_Username)(THIS_ BSTR FAR* pUsername) PURE;
  209. STDMETHOD(get_VersionNumber)(THIS_ long FAR* piVersion) PURE;
  210. STDMETHOD(get_Action)(THIS_ BSTR FAR* pAction) PURE;
  211. STDMETHOD(get_Date)(THIS_ DATE FAR* pDate) PURE;
  212. STDMETHOD(get_Comment)(THIS_ BSTR FAR* pComment) PURE;
  213. STDMETHOD(get_Label)(THIS_ BSTR FAR* pLabel) PURE;
  214. STDMETHOD(get_VSSItem)(THIS_ IVSSItem FAR* FAR* ppIItem) PURE;
  215. };
  216. DEFINE_GUID(IID_IVSSItems,0x783CD4E5L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
  217. /* Definition of interface: IVSSItems */
  218. #undef INTERFACE
  219. #define INTERFACE IVSSItems
  220. DECLARE_INTERFACE_(IVSSItems, IDispatch)
  221. {
  222. BEGIN_INTERFACE
  223. #ifndef NO_BASEINTERFACE_FUNCS
  224. /* IUnknown methods */
  225. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  226. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  227. STDMETHOD_(ULONG, Release)(THIS) PURE;
  228. /* IDispatch methods */
  229. STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  230. STDMETHOD(GetTypeInfo)(
  231. THIS_
  232. UINT itinfo,
  233. LCID lcid,
  234. ITypeInfo FAR* FAR* pptinfo) PURE;
  235. STDMETHOD(GetIDsOfNames)(
  236. THIS_
  237. REFIID riid,
  238. OLECHAR FAR* FAR* rgszNames,
  239. UINT cNames,
  240. LCID lcid,
  241. DISPID FAR* rgdispid) PURE;
  242. STDMETHOD(Invoke)(
  243. THIS_
  244. DISPID dispidMember,
  245. REFIID riid,
  246. LCID lcid,
  247. WORD wFlags,
  248. DISPPARAMS FAR* pdispparams,
  249. VARIANT FAR* pvarResult,
  250. EXCEPINFO FAR* pexcepinfo,
  251. UINT FAR* puArgErr) PURE;
  252. #endif
  253. /* IVSSItems methods */
  254. STDMETHOD(get_Count)(THIS_ long FAR* piCount) PURE;
  255. STDMETHOD(get_Item)(THIS_ VARIANT sItem, IVSSItem FAR* FAR* ppIItem) PURE;
  256. STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* ppIEnum) PURE;
  257. };
  258. DEFINE_GUID(IID_IVSSCheckouts,0x8903A770L,0xF55F,0x11CF,0x92,0x27,0x00,0xAA,0x00,0xA1,0xEB,0x95);
  259. /* Definition of interface: IVSSCheckouts */
  260. #undef INTERFACE
  261. #define INTERFACE IVSSCheckouts
  262. DECLARE_INTERFACE_(IVSSCheckouts, IDispatch)
  263. {
  264. BEGIN_INTERFACE
  265. #ifndef NO_BASEINTERFACE_FUNCS
  266. /* IUnknown methods */
  267. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  268. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  269. STDMETHOD_(ULONG, Release)(THIS) PURE;
  270. /* IDispatch methods */
  271. STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  272. STDMETHOD(GetTypeInfo)(
  273. THIS_
  274. UINT itinfo,
  275. LCID lcid,
  276. ITypeInfo FAR* FAR* pptinfo) PURE;
  277. STDMETHOD(GetIDsOfNames)(
  278. THIS_
  279. REFIID riid,
  280. OLECHAR FAR* FAR* rgszNames,
  281. UINT cNames,
  282. LCID lcid,
  283. DISPID FAR* rgdispid) PURE;
  284. STDMETHOD(Invoke)(
  285. THIS_
  286. DISPID dispidMember,
  287. REFIID riid,
  288. LCID lcid,
  289. WORD wFlags,
  290. DISPPARAMS FAR* pdispparams,
  291. VARIANT FAR* pvarResult,
  292. EXCEPINFO FAR* pexcepinfo,
  293. UINT FAR* puArgErr) PURE;
  294. #endif
  295. /* IVSSCheckouts methods */
  296. STDMETHOD(get_Count)(THIS_ long FAR* piCount) PURE;
  297. STDMETHOD(get_Item)(THIS_ VARIANT sItem, IVSSCheckout FAR* FAR* ppICheckout) PURE;
  298. STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* ppIEnum) PURE;
  299. };
  300. DEFINE_GUID(IID_IVSSCheckout,0x783CD4E6L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
  301. /* Definition of interface: IVSSCheckout */
  302. #undef INTERFACE
  303. #define INTERFACE IVSSCheckout
  304. DECLARE_INTERFACE_(IVSSCheckout, IDispatch)
  305. {
  306. BEGIN_INTERFACE
  307. #ifndef NO_BASEINTERFACE_FUNCS
  308. /* IUnknown methods */
  309. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  310. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  311. STDMETHOD_(ULONG, Release)(THIS) PURE;
  312. /* IDispatch methods */
  313. STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  314. STDMETHOD(GetTypeInfo)(
  315. THIS_
  316. UINT itinfo,
  317. LCID lcid,
  318. ITypeInfo FAR* FAR* pptinfo) PURE;
  319. STDMETHOD(GetIDsOfNames)(
  320. THIS_
  321. REFIID riid,
  322. OLECHAR FAR* FAR* rgszNames,
  323. UINT cNames,
  324. LCID lcid,
  325. DISPID FAR* rgdispid) PURE;
  326. STDMETHOD(Invoke)(
  327. THIS_
  328. DISPID dispidMember,
  329. REFIID riid,
  330. LCID lcid,
  331. WORD wFlags,
  332. DISPPARAMS FAR* pdispparams,
  333. VARIANT FAR* pvarResult,
  334. EXCEPINFO FAR* pexcepinfo,
  335. UINT FAR* puArgErr) PURE;
  336. #endif
  337. /* IVSSCheckout methods */
  338. STDMETHOD(get_Username)(THIS_ BSTR FAR* pUsername) PURE;
  339. STDMETHOD(get_Date)(THIS_ DATE FAR* pDate) PURE;
  340. STDMETHOD(get_LocalSpec)(THIS_ BSTR FAR* pLocal) PURE;
  341. STDMETHOD(get_Machine)(THIS_ BSTR FAR* pMachine) PURE;
  342. STDMETHOD(get_Project)(THIS_ BSTR FAR* pProject) PURE;
  343. STDMETHOD(get_Comment)(THIS_ BSTR FAR* pComment) PURE;
  344. STDMETHOD(get_VersionNumber)(THIS_ long FAR* piVersion) PURE;
  345. };
  346. DEFINE_GUID(IID_IVSSDatabase,0x783CD4E2L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
  347. /* Definition of interface: IVSSDatabase */
  348. #undef INTERFACE
  349. #define INTERFACE IVSSDatabase
  350. DECLARE_INTERFACE_(IVSSDatabase, IDispatch)
  351. {
  352. BEGIN_INTERFACE
  353. #ifndef NO_BASEINTERFACE_FUNCS
  354. /* IUnknown methods */
  355. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  356. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  357. STDMETHOD_(ULONG, Release)(THIS) PURE;
  358. /* IDispatch methods */
  359. STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  360. STDMETHOD(GetTypeInfo)(
  361. THIS_
  362. UINT itinfo,
  363. LCID lcid,
  364. ITypeInfo FAR* FAR* pptinfo) PURE;
  365. STDMETHOD(GetIDsOfNames)(
  366. THIS_
  367. REFIID riid,
  368. OLECHAR FAR* FAR* rgszNames,
  369. UINT cNames,
  370. LCID lcid,
  371. DISPID FAR* rgdispid) PURE;
  372. STDMETHOD(Invoke)(
  373. THIS_
  374. DISPID dispidMember,
  375. REFIID riid,
  376. LCID lcid,
  377. WORD wFlags,
  378. DISPPARAMS FAR* pdispparams,
  379. VARIANT FAR* pvarResult,
  380. EXCEPINFO FAR* pexcepinfo,
  381. UINT FAR* puArgErr) PURE;
  382. #endif
  383. /* IVSSDatabase methods */
  384. STDMETHOD(Open)(THIS_ BSTR SrcSafeIni, BSTR Username, BSTR Password) PURE;
  385. STDMETHOD(get_SrcSafeIni)(THIS_ BSTR FAR* pSrcSafeIni) PURE;
  386. STDMETHOD(get_DatabaseName)(THIS_ BSTR FAR* pDatabaseName) PURE;
  387. STDMETHOD(get_UserName)(THIS_ BSTR FAR* pUsername) PURE;
  388. STDMETHOD(get_CurrentProject)(THIS_ BSTR FAR* pPrj) PURE;
  389. STDMETHOD(put_CurrentProject)(THIS_ BSTR Prj) PURE;
  390. STDMETHOD(get_VSSItem)(THIS_ BSTR Spec, VARIANT_BOOL Deleted, IVSSItem FAR* FAR* ppIVSSItem) PURE;
  391. };
  392. DEFINE_GUID(CLSID_VSSItem,0x783CD4E3L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
  393. #ifdef __cplusplus
  394. class VSSItem;
  395. #endif
  396. DEFINE_GUID(CLSID_VSSVersion,0x783CD4ECL,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
  397. #ifdef __cplusplus
  398. class VSSVersion;
  399. #endif
  400. DEFINE_GUID(CLSID_VSSCheckout,0x2A0DE0E0L,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);
  401. #ifdef __cplusplus
  402. class VSSCheckout;
  403. #endif
  404. DEFINE_GUID(CLSID_VSSDatabase,0x783CD4E4L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
  405. #ifdef __cplusplus
  406. class VSSDatabase;
  407. #endif
  408. DEFINE_GUID(IID_IVSSEvents,0x783CD4E9L,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
  409. /* Definition of interface: IVSSEvents */
  410. #undef INTERFACE
  411. #define INTERFACE IVSSEvents
  412. DECLARE_INTERFACE_(IVSSEvents, IUnknown)
  413. {
  414. BEGIN_INTERFACE
  415. #ifndef NO_BASEINTERFACE_FUNCS
  416. /* IUnknown methods */
  417. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  418. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  419. STDMETHOD_(ULONG, Release)(THIS) PURE;
  420. #endif
  421. /* IVSSEvents methods */
  422. STDMETHOD(BeforeAdd)(THIS_ IVSSItem FAR* pIPrj, BSTR Local, VARIANT_BOOL FAR* pbContinue) PURE;
  423. STDMETHOD(AfterAdd)(THIS_ IVSSItem FAR* pIItem, BSTR Local) PURE;
  424. STDMETHOD(BeforeCheckout)(THIS_ IVSSItem FAR* pIItem, BSTR Local, VARIANT_BOOL FAR* pbContinue) PURE;
  425. STDMETHOD(AfterCheckout)(THIS_ IVSSItem FAR* pIItem, BSTR Local) PURE;
  426. STDMETHOD(BeforeCheckin)(THIS_ IVSSItem FAR* pIItem, BSTR Local, VARIANT_BOOL FAR* pbContinue) PURE;
  427. STDMETHOD(AfterCheckin)(THIS_ IVSSItem FAR* pIItem, BSTR Local) PURE;
  428. STDMETHOD(BeforeUndoCheckout)(THIS_ IVSSItem FAR* pIItem, BSTR Local, VARIANT_BOOL FAR* pbContinue) PURE;
  429. STDMETHOD(AfterUndoCheckout)(THIS_ IVSSItem FAR* pIItem, BSTR Local) PURE;
  430. STDMETHOD(BeforeRename)(THIS_ IVSSItem FAR* pIItem, BSTR NewName, VARIANT_BOOL FAR* pbContinue) PURE;
  431. STDMETHOD(AfterRename)(THIS_ IVSSItem FAR* pIItem, BSTR OldName) PURE;
  432. STDMETHOD(BeforeBranch)(THIS_ IVSSItem FAR* pIItem, VARIANT_BOOL FAR* pbContinue) PURE;
  433. STDMETHOD(AfterBranch)(THIS_ IVSSItem FAR* pIItem) PURE;
  434. STDMETHOD(BeforeEvent)(THIS_ long iEvent, IVSSItem FAR* pIItem, BSTR Str, VARIANT var, VARIANT_BOOL FAR* pbContinue) PURE;
  435. STDMETHOD(AfterEvent)(THIS_ long iEvent, IVSSItem FAR* pIItem, BSTR Str, VARIANT var) PURE;
  436. };
  437. DEFINE_GUID(IID_IVSS,0x783CD4EBL,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
  438. /* Definition of interface: IVSS */
  439. #undef INTERFACE
  440. #define INTERFACE IVSS
  441. DECLARE_INTERFACE_(IVSS, IDispatch)
  442. {
  443. BEGIN_INTERFACE
  444. #ifndef NO_BASEINTERFACE_FUNCS
  445. /* IUnknown methods */
  446. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  447. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  448. STDMETHOD_(ULONG, Release)(THIS) PURE;
  449. /* IDispatch methods */
  450. STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  451. STDMETHOD(GetTypeInfo)(
  452. THIS_
  453. UINT itinfo,
  454. LCID lcid,
  455. ITypeInfo FAR* FAR* pptinfo) PURE;
  456. STDMETHOD(GetIDsOfNames)(
  457. THIS_
  458. REFIID riid,
  459. OLECHAR FAR* FAR* rgszNames,
  460. UINT cNames,
  461. LCID lcid,
  462. DISPID FAR* rgdispid) PURE;
  463. STDMETHOD(Invoke)(
  464. THIS_
  465. DISPID dispidMember,
  466. REFIID riid,
  467. LCID lcid,
  468. WORD wFlags,
  469. DISPPARAMS FAR* pdispparams,
  470. VARIANT FAR* pvarResult,
  471. EXCEPINFO FAR* pexcepinfo,
  472. UINT FAR* puArgErr) PURE;
  473. #endif
  474. /* IVSS methods */
  475. STDMETHOD(get_VSSDatabase)(THIS_ IVSSDatabase FAR* FAR* ppIVSSDatabase) PURE;
  476. };
  477. DEFINE_GUID(IID_IVSSEventHandler,0x783CD4EAL,0x9D54,0x11CF,0xB8,0xEE,0x00,0x60,0x8C,0xC9,0xA7,0x1F);
  478. /* Definition of interface: IVSSEventHandler */
  479. #undef INTERFACE
  480. #define INTERFACE IVSSEventHandler
  481. DECLARE_INTERFACE_(IVSSEventHandler, IUnknown)
  482. {
  483. BEGIN_INTERFACE
  484. #ifndef NO_BASEINTERFACE_FUNCS
  485. /* IUnknown methods */
  486. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  487. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  488. STDMETHOD_(ULONG, Release)(THIS) PURE;
  489. #endif
  490. /* IVSSEventHandler methods */
  491. STDMETHOD(Init)(THIS_ IVSS FAR* pIVSS) PURE;
  492. };
  493. DEFINE_GUID(CLSID_VSSApp,0x2A0DE0E1L,0x2E9F,0x11D0,0x92,0x36,0x00,0xAA,0x00,0xA1,0xEB,0x95);
  494. #ifdef __cplusplus
  495. class VSSApp;
  496. #endif
  497. #endif