VSS.IDL 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656
  1. /*
  2. ** Command & Conquer Renegade(tm)
  3. ** Copyright 2025 Electronic Arts Inc.
  4. **
  5. ** This program is free software: you can redistribute it and/or modify
  6. ** it under the terms of the GNU General Public License as published by
  7. ** the Free Software Foundation, either version 3 of the License, or
  8. ** (at your option) any later version.
  9. **
  10. ** This program is distributed in the hope that it will be useful,
  11. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ** GNU General Public License for more details.
  14. **
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. // Generated .IDL file (by the OLE/COM Object Viewer)
  19. //
  20. // typelib filename: SSAPI.DLL
  21. // Forward declare all types defined in this typelib
  22. import "wtypes.idl";
  23. import "oaidl.idl";
  24. import "ocidl.idl";
  25. interface IVSSItemOld;
  26. interface IVSSItem;
  27. interface IVSSVersions;
  28. interface IVSSVersionOld;
  29. interface IVSSVersion;
  30. interface IVSSItems;
  31. interface IVSSCheckouts;
  32. interface IVSSCheckout;
  33. interface IVSSDatabaseOld;
  34. interface IVSSDatabase;
  35. interface IVSSUser;
  36. interface IVSSUsers;
  37. interface IVSSEventsOld;
  38. interface IVSSEvents;
  39. interface IVSS;
  40. interface IVSSEventHandler;
  41. [
  42. uuid(783CD4E0-9D54-11CF-B8EE-00608CC9A71F),
  43. version(5.1),
  44. helpstring("Microsoft SourceSafe 6.0 Type Library"),
  45. helpfile("ssauto.hlp"),
  46. helpcontext(00000000)
  47. ]
  48. library SourceSafeTypeLib
  49. {
  50. // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
  51. importlib("stdole32.tlb");
  52. importlib("stdole2.tlb");
  53. typedef [uuid(783CD4EF-9D54-11CF-B8EE-00608CC9A71F), helpstring("SourceSafe operation flags")]
  54. enum {
  55. VSSFLAG_USERRONO = 1,
  56. VSSFLAG_USERROYES = 2,
  57. VSSFLAG_TIMENOW = 4,
  58. VSSFLAG_TIMEMOD = 8,
  59. VSSFLAG_TIMEUPD = 12,
  60. VSSFLAG_EOLCR = 16,
  61. VSSFLAG_EOLLF = 32,
  62. VSSFLAG_EOLCRLF = 48,
  63. VSSFLAG_REPASK = 64,
  64. VSSFLAG_REPREPLACE = 128,
  65. VSSFLAG_REPSKIP = 192,
  66. VSSFLAG_REPMERGE = 256,
  67. VSSFLAG_CMPFULL = 512,
  68. VSSFLAG_CMPTIME = 1024,
  69. VSSFLAG_CMPCHKSUM = 1536,
  70. VSSFLAG_CMPFAIL = 2048,
  71. VSSFLAG_RECURSNO = 4096,
  72. VSSFLAG_RECURSYES = 8192,
  73. VSSFLAG_FORCEDIRNO = 16384,
  74. VSSFLAG_FORCEDIRYES = 32768,
  75. VSSFLAG_KEEPNO = 65536,
  76. VSSFLAG_KEEPYES = 131072,
  77. VSSFLAG_DELNO = 262144,
  78. VSSFLAG_DELYES = 524288,
  79. VSSFLAG_DELNOREPLACE = 786432,
  80. VSSFLAG_BINTEST = 1048576,
  81. VSSFLAG_BINBINARY = 2097152,
  82. VSSFLAG_BINTEXT = 3145728,
  83. VSSFLAG_DELTAYES = 4194304,
  84. VSSFLAG_DELTANO = 8388608,
  85. VSSFLAG_UPDASK = 16777216,
  86. VSSFLAG_UPDUPDATE = 33554432,
  87. VSSFLAG_UPDUNCH = 50331648,
  88. VSSFLAG_GETYES = 67108864,
  89. VSSFLAG_GETNO = 134217728,
  90. VSSFLAG_CHKEXCLUSIVEYES = 268435456,
  91. VSSFLAG_CHKEXCLUSIVENO = 536870912,
  92. VSSFLAG_HISTIGNOREFILES = 1073741824
  93. } VSSFlags;
  94. typedef [uuid(783CD4ED-9D54-11CF-B8EE-00608CC9A71F), helpstring("SourceSafe file checkout status")]
  95. enum {
  96. VSSFILE_NOTCHECKEDOUT = 0,
  97. VSSFILE_CHECKEDOUT = 1,
  98. VSSFILE_CHECKEDOUT_ME = 2
  99. } VSSFileStatus;
  100. typedef [uuid(783CD4EE-9D54-11CF-B8EE-00608CC9A71F), helpstring("SourceSafe item type")]
  101. enum {
  102. VSSITEM_PROJECT = 0,
  103. VSSITEM_FILE = 1
  104. } VSSItemType;
  105. typedef [uuid(2A0DE0E6-2E9F-11D0-9236-00AA00A1EB95), helpstring("SourceSafe rights values")]
  106. enum {
  107. VSSRIGHTS_READ = 1,
  108. VSSRIGHTS_CHKUPD = 2,
  109. VSSRIGHTS_ADDRENREM = 4,
  110. VSSRIGHTS_DESTROY = 8,
  111. VSSRIGHTS_ALL = 15,
  112. VSSRIGHTS_INHERITED = 16
  113. } VSSRights;
  114. [
  115. odl,
  116. uuid(783CD4E1-9D54-11CF-B8EE-00608CC9A71F),
  117. helpstring("SourceSafe item interface"),
  118. dual,
  119. oleautomation
  120. ]
  121. interface IVSSItemOld : IDispatch {
  122. [id(0x00000001)]
  123. HRESULT _stdcall Spec([out, retval] BSTR* pSpec);
  124. [id(0x00000002), propget]
  125. HRESULT _stdcall Binary([out, retval] VARIANT_BOOL* pbBinary);
  126. [id(0x00000002), propput]
  127. HRESULT _stdcall Binary([in] VARIANT_BOOL pbBinary);
  128. [id(0x00000003), propget]
  129. HRESULT _stdcall Deleted([out, retval] VARIANT_BOOL* pbDeleted);
  130. [id(0x00000003), propput]
  131. HRESULT _stdcall Deleted([in] VARIANT_BOOL pbDeleted);
  132. [id(0x00000004), propget]
  133. HRESULT _stdcall Type([out, retval] int* piType);
  134. [id(0x00000005), propget]
  135. HRESULT _stdcall LocalSpec([out, retval] BSTR* pLocal);
  136. [id(0x00000005), propput]
  137. HRESULT _stdcall LocalSpec([in] BSTR pLocal);
  138. [id(0x00000006), propget]
  139. HRESULT _stdcall Name([out, retval] BSTR* pName);
  140. [id(0x00000006), propput]
  141. HRESULT _stdcall Name([in] BSTR pName);
  142. [id(0x00000007), propget]
  143. HRESULT _stdcall Parent([out, retval] IVSSItem** ppIParent);
  144. [id(0x00000008), propget]
  145. HRESULT _stdcall VersionNumber([out, retval] long* piVersion);
  146. [id(0x00000009), propget]
  147. HRESULT _stdcall Items(
  148. [in, optional, defaultvalue(0)] VARIANT_BOOL IncludeDeleted,
  149. [out, retval] IVSSItems** ppIItems);
  150. [id(0x0000000a)]
  151. HRESULT _stdcall Get(
  152. [in, out, optional, defaultvalue(0)] BSTR* Local,
  153. [in, optional, defaultvalue(0)] long iFlags);
  154. [id(0x0000000b)]
  155. HRESULT _stdcall Checkout(
  156. [in, optional, defaultvalue("")] BSTR Comment,
  157. [in, optional, defaultvalue("")] BSTR Local,
  158. [in, optional, defaultvalue(0)] long iFlags);
  159. [id(0x0000000c)]
  160. HRESULT _stdcall Checkin(
  161. [in, optional, defaultvalue("")] BSTR Comment,
  162. [in, optional, defaultvalue("")] BSTR Local,
  163. [in, optional, defaultvalue(0)] long iFlags);
  164. [id(0x0000000d)]
  165. HRESULT _stdcall UndoCheckout(
  166. [in, optional, defaultvalue("")] BSTR Local,
  167. [in, optional, defaultvalue(0)] long iFlags);
  168. [id(0x0000000e), propget]
  169. HRESULT _stdcall IsCheckedOut([out, retval] long* piStatus);
  170. [id(0x0000000f), propget]
  171. HRESULT _stdcall Checkouts([out, retval] IVSSCheckouts** ppICheckouts);
  172. [id(0x00000010), propget]
  173. HRESULT _stdcall IsDifferent(
  174. [in, optional, defaultvalue("")] BSTR Local,
  175. [out, retval] VARIANT_BOOL* pbDifferent);
  176. [id(0x00000011)]
  177. HRESULT _stdcall Add(
  178. [in] BSTR Local,
  179. [in, optional, defaultvalue("")] BSTR Comment,
  180. [in, optional, defaultvalue(0)] long iFlags,
  181. [out, retval] IVSSItem** ppIItem);
  182. [id(0x00000012)]
  183. HRESULT _stdcall NewSubproject(
  184. [in] BSTR Name,
  185. [in, optional, defaultvalue("")] BSTR Comment,
  186. [out, retval] IVSSItem** ppIItem);
  187. [id(0x00000013)]
  188. HRESULT _stdcall Share(
  189. [in] IVSSItem* pIItem,
  190. [in, optional, defaultvalue("")] BSTR Comment,
  191. [in, optional, defaultvalue(0)] long iFlags);
  192. [id(0x00000014)]
  193. HRESULT _stdcall Destroy();
  194. [id(0x00000015)]
  195. HRESULT _stdcall Move([in] IVSSItem* pINewParent);
  196. [id(0x00000016)]
  197. HRESULT _stdcall Label(
  198. [in] BSTR Label,
  199. [in, optional, defaultvalue("")] BSTR Comment);
  200. [id(0x00000017), propget]
  201. HRESULT _stdcall Versions(
  202. [in, optional, defaultvalue(0)] long iFlags,
  203. [out, retval] IVSSVersions** pIVersions);
  204. [id(0x00000018), propget]
  205. HRESULT _stdcall Version(
  206. [in, optional] VARIANT Version,
  207. [out, retval] IVSSItem** ppIItem);
  208. };
  209. [
  210. odl,
  211. uuid(2A0DE0E7-2E9F-11D0-9236-00AA00A1EB95),
  212. helpstring("SourceSafe item interface"),
  213. dual,
  214. oleautomation
  215. ]
  216. interface IVSSItem : IVSSItemOld {
  217. [id(0x00000019), propget]
  218. HRESULT _stdcall Links([out, retval] IVSSItems** ppIItems);
  219. [id(0x0000001a)]
  220. HRESULT _stdcall Branch(
  221. [in, optional, defaultvalue("")] BSTR Comment,
  222. [in, optional, defaultvalue(0)] long iFlags,
  223. [out, retval] IVSSItem** ppIItem);
  224. };
  225. [
  226. odl,
  227. uuid(783CD4E7-9D54-11CF-B8EE-00608CC9A71F),
  228. helpstring("SourceSafe versions collection"),
  229. dual,
  230. oleautomation
  231. ]
  232. interface IVSSVersions : IDispatch {
  233. [id(0xfffffffc), restricted, hidden]
  234. HRESULT _stdcall _NewEnum([out, retval] IUnknown** ppIEnum);
  235. };
  236. [
  237. odl,
  238. uuid(783CD4E8-9D54-11CF-B8EE-00608CC9A71F),
  239. helpstring("SourceSafe version information"),
  240. dual,
  241. oleautomation
  242. ]
  243. interface IVSSVersionOld : IDispatch {
  244. [id(0x00000001), propget]
  245. HRESULT _stdcall Username([out, retval] BSTR* pUsername);
  246. [id(0x00000002), propget]
  247. HRESULT _stdcall VersionNumber([out, retval] long* piVersion);
  248. [id(0x00000003), propget]
  249. HRESULT _stdcall Action([out, retval] BSTR* pAction);
  250. [id(0x00000004), propget]
  251. HRESULT _stdcall Date([out, retval] DATE* pDate);
  252. [id(0x00000005), propget]
  253. HRESULT _stdcall Comment([out, retval] BSTR* pComment);
  254. [id(0x00000006), propget]
  255. HRESULT _stdcall Label([out, retval] BSTR* pLabel);
  256. [id(0x00000007), propget]
  257. HRESULT _stdcall VSSItem([out, retval] IVSSItem** ppIItem);
  258. };
  259. [
  260. odl,
  261. uuid(2A0DE0E9-2E9F-11D0-9236-00AA00A1EB95),
  262. helpstring("SourceSafe version information"),
  263. dual,
  264. oleautomation
  265. ]
  266. interface IVSSVersion : IVSSVersionOld {
  267. [id(0x00000008), propget]
  268. HRESULT _stdcall LabelComment([out, retval] BSTR* pComment);
  269. };
  270. [
  271. odl,
  272. uuid(783CD4E5-9D54-11CF-B8EE-00608CC9A71F),
  273. helpstring("SourceSafe items collection interface"),
  274. dual,
  275. oleautomation
  276. ]
  277. interface IVSSItems : IDispatch {
  278. [id(0x00000001), propget]
  279. HRESULT _stdcall Count([out, retval] long* piCount);
  280. [id(00000000), propget]
  281. HRESULT _stdcall Item(
  282. [in] VARIANT sItem,
  283. [out, retval] IVSSItem** ppIItem);
  284. [id(0xfffffffc), restricted, hidden]
  285. HRESULT _stdcall _NewEnum([out, retval] IUnknown** ppIEnum);
  286. };
  287. [
  288. odl,
  289. uuid(8903A770-F55F-11CF-9227-00AA00A1EB95),
  290. helpstring("SourceSafe checkouts collection interface"),
  291. dual,
  292. oleautomation
  293. ]
  294. interface IVSSCheckouts : IDispatch {
  295. [id(0x00000001), propget]
  296. HRESULT _stdcall Count([out, retval] long* piCount);
  297. [id(00000000), propget]
  298. HRESULT _stdcall Item(
  299. [in] VARIANT sItem,
  300. [out, retval] IVSSCheckout** ppICheckout);
  301. [id(0xfffffffc), restricted, hidden]
  302. HRESULT _stdcall _NewEnum([out, retval] IUnknown** ppIEnum);
  303. };
  304. [
  305. odl,
  306. uuid(783CD4E6-9D54-11CF-B8EE-00608CC9A71F),
  307. helpstring("SourceSafe checkouts interface"),
  308. dual,
  309. oleautomation
  310. ]
  311. interface IVSSCheckout : IDispatch {
  312. [id(0x00000001), propget]
  313. HRESULT _stdcall Username([out, retval] BSTR* pUsername);
  314. [id(0x00000002), propget]
  315. HRESULT _stdcall Date([out, retval] DATE* pDate);
  316. [id(0x00000003), propget]
  317. HRESULT _stdcall LocalSpec([out, retval] BSTR* pLocal);
  318. [id(0x00000004), propget]
  319. HRESULT _stdcall Machine([out, retval] BSTR* pMachine);
  320. [id(0x00000005), propget]
  321. HRESULT _stdcall Project([out, retval] BSTR* pProject);
  322. [id(0x00000006), propget]
  323. HRESULT _stdcall Comment([out, retval] BSTR* pComment);
  324. [id(0x00000007), propget]
  325. HRESULT _stdcall VersionNumber([out, retval] long* piVersion);
  326. };
  327. [
  328. odl,
  329. uuid(783CD4E2-9D54-11CF-B8EE-00608CC9A71F),
  330. helpstring("SourceSafe database object interface"),
  331. dual,
  332. oleautomation
  333. ]
  334. interface IVSSDatabaseOld : IDispatch {
  335. [id(0x00000001)]
  336. HRESULT _stdcall Open(
  337. [in, optional, defaultvalue("")] BSTR SrcSafeIni,
  338. [in, optional, defaultvalue("")] BSTR Username,
  339. [in, optional, defaultvalue("")] BSTR Password);
  340. [id(0x00000002), propget]
  341. HRESULT _stdcall SrcSafeIni([out, retval] BSTR* pSrcSafeIni);
  342. [id(0x00000003), propget]
  343. HRESULT _stdcall DatabaseName([out, retval] BSTR* pDatabaseName);
  344. [id(0x00000004), propget]
  345. HRESULT _stdcall Username([out, retval] BSTR* pUsername);
  346. [id(0x00000005), propget]
  347. HRESULT _stdcall CurrentProject([out, retval] BSTR* pPrj);
  348. [id(0x00000005), propput]
  349. HRESULT _stdcall CurrentProject([in] BSTR pPrj);
  350. [id(0x00000006), propget]
  351. HRESULT _stdcall VSSItem(
  352. [in] BSTR Spec,
  353. [in, optional, defaultvalue(0)] VARIANT_BOOL Deleted,
  354. [out, retval] IVSSItem** ppIVSSItem);
  355. };
  356. [
  357. odl,
  358. uuid(2A0DE0E2-2E9F-11D0-9236-00AA00A1EB95),
  359. helpstring("SourceSafe database object interface"),
  360. dual,
  361. oleautomation
  362. ]
  363. interface IVSSDatabase : IVSSDatabaseOld {
  364. [id(0x00000007)]
  365. HRESULT _stdcall AddUser(
  366. [in] BSTR User,
  367. [in] BSTR Password,
  368. [in] VARIANT_BOOL ReadOnly,
  369. [out, retval] IVSSUser** ppIUser);
  370. [id(0x00000008), propget]
  371. HRESULT _stdcall User(
  372. [in] BSTR Name,
  373. [out, retval] IVSSUser** ppIUser);
  374. [id(0x00000009), propget]
  375. HRESULT _stdcall Users([out, retval] IVSSUsers** ppIUsers);
  376. [id(0x0000000a), propget]
  377. HRESULT _stdcall ProjectRightsEnabled([out, retval] VARIANT_BOOL* pEnabled);
  378. [id(0x0000000a), propput]
  379. HRESULT _stdcall ProjectRightsEnabled([in] VARIANT_BOOL pEnabled);
  380. [id(0x0000000b), propget]
  381. HRESULT _stdcall DefaultProjectRights([out, retval] long* pRights);
  382. [id(0x0000000b), propput]
  383. HRESULT _stdcall DefaultProjectRights([in] long pRights);
  384. };
  385. [
  386. odl,
  387. uuid(2A0DE0E3-2E9F-11D0-9236-00AA00A1EB95),
  388. helpstring("SourceSafe user object interface"),
  389. dual,
  390. oleautomation
  391. ]
  392. interface IVSSUser : IDispatch {
  393. [id(0x00000001)]
  394. HRESULT _stdcall Delete();
  395. [id(0x00000002), propget]
  396. HRESULT _stdcall Name([out, retval] BSTR* pName);
  397. [id(0x00000002), propput]
  398. HRESULT _stdcall Name([in] BSTR pName);
  399. [id(0x00000003), propput]
  400. HRESULT _stdcall Password([in] BSTR rhs);
  401. [id(0x00000004), propget]
  402. HRESULT _stdcall ReadOnly([out, retval] VARIANT_BOOL* pReadOnly);
  403. [id(0x00000004), propput]
  404. HRESULT _stdcall ReadOnly([in] VARIANT_BOOL pReadOnly);
  405. [id(0x00000005), propget]
  406. HRESULT _stdcall ProjectRights(
  407. [in, optional, defaultvalue("$/")] BSTR Project,
  408. [out, retval] long* piRightsOut);
  409. [id(0x00000005), propput]
  410. HRESULT _stdcall ProjectRights(
  411. [in, optional, defaultvalue("$/")] BSTR Project,
  412. [in] long piRightsOut);
  413. [id(0x00000006)]
  414. HRESULT _stdcall RemoveProjectRights([in] BSTR Project);
  415. };
  416. [
  417. odl,
  418. uuid(2A0DE0E4-2E9F-11D0-9236-00AA00A1EB95),
  419. helpstring("SourceSafe users collection interface"),
  420. dual,
  421. oleautomation
  422. ]
  423. interface IVSSUsers : IDispatch {
  424. [id(0x00000001), propget]
  425. HRESULT _stdcall Count([out, retval] long* piCount);
  426. [id(00000000), propget]
  427. HRESULT _stdcall Item(
  428. [in] VARIANT sItem,
  429. [out, retval] IVSSUser** ppIUser);
  430. [id(0xfffffffc), restricted, hidden]
  431. HRESULT _stdcall _NewEnum([out, retval] IUnknown** ppIEnum);
  432. };
  433. [
  434. uuid(783CD4E3-9D54-11CF-B8EE-00608CC9A71F),
  435. noncreatable
  436. ]
  437. coclass VSSItem {
  438. [default] interface IVSSItem;
  439. interface IVSSItemOld;
  440. };
  441. [
  442. uuid(783CD4EC-9D54-11CF-B8EE-00608CC9A71F),
  443. noncreatable
  444. ]
  445. coclass VSSVersion {
  446. [default] interface IVSSVersion;
  447. };
  448. [
  449. uuid(2A0DE0E0-2E9F-11D0-9236-00AA00A1EB95),
  450. noncreatable
  451. ]
  452. coclass VSSCheckout {
  453. [default] interface IVSSCheckout;
  454. };
  455. [
  456. uuid(783CD4E4-9D54-11CF-B8EE-00608CC9A71F)
  457. ]
  458. coclass VSSDatabase {
  459. [default] interface IVSSDatabase;
  460. interface IVSSDatabaseOld;
  461. };
  462. [
  463. uuid(2A0DE0E5-2E9F-11D0-9236-00AA00A1EB95),
  464. noncreatable
  465. ]
  466. coclass VSSUser {
  467. [default] interface IVSSUser;
  468. };
  469. [
  470. odl,
  471. uuid(783CD4E9-9D54-11CF-B8EE-00608CC9A71F),
  472. helpstring("SourceSafe event interface")
  473. ]
  474. interface IVSSEventsOld : IUnknown {
  475. HRESULT _stdcall BeforeAdd(
  476. [in] IVSSItem* pIPrj,
  477. [in] BSTR Local,
  478. [out, retval] VARIANT_BOOL* pbContinue);
  479. HRESULT _stdcall AfterAdd(
  480. [in] IVSSItem* pIItem,
  481. [in] BSTR Local);
  482. HRESULT _stdcall BeforeCheckout(
  483. [in] IVSSItem* pIItem,
  484. [in] BSTR Local,
  485. [out, retval] VARIANT_BOOL* pbContinue);
  486. HRESULT _stdcall AfterCheckout(
  487. [in] IVSSItem* pIItem,
  488. [in] BSTR Local);
  489. HRESULT _stdcall BeforeCheckin(
  490. [in] IVSSItem* pIItem,
  491. [in] BSTR Local,
  492. [out, retval] VARIANT_BOOL* pbContinue);
  493. HRESULT _stdcall AfterCheckin(
  494. [in] IVSSItem* pIItem,
  495. [in] BSTR Local);
  496. HRESULT _stdcall BeforeUndoCheckout(
  497. [in] IVSSItem* pIItem,
  498. [in] BSTR Local,
  499. [out, retval] VARIANT_BOOL* pbContinue);
  500. HRESULT _stdcall AfterUndoCheckout(
  501. [in] IVSSItem* pIItem,
  502. [in] BSTR Local);
  503. HRESULT _stdcall BeforeRename(
  504. [in] IVSSItem* pIItem,
  505. [in] BSTR NewName,
  506. [out, retval] VARIANT_BOOL* pbContinue);
  507. HRESULT _stdcall AfterRename(
  508. [in] IVSSItem* pIItem,
  509. [in] BSTR OldName);
  510. HRESULT _stdcall BeforeBranch(
  511. [in] IVSSItem* pIItem,
  512. [out, retval] VARIANT_BOOL* pbContinue);
  513. HRESULT _stdcall AfterBranch([in] IVSSItem* pIItem);
  514. HRESULT _stdcall BeforeEvent(
  515. [in] long iEvent,
  516. [in] IVSSItem* pIItem,
  517. [in] BSTR Str,
  518. [in] VARIANT var,
  519. [out, retval] VARIANT_BOOL* pbContinue);
  520. HRESULT _stdcall AfterEvent(
  521. [in] long iEvent,
  522. [in] IVSSItem* pIItem,
  523. [in] BSTR Str,
  524. [in] VARIANT var);
  525. };
  526. [
  527. odl,
  528. uuid(2A0DE0E8-2E9F-11D0-9236-00AA00A1EB95),
  529. helpstring("SourceSafe event interface")
  530. ]
  531. interface IVSSEvents : IUnknown {
  532. HRESULT _stdcall BeforeAdd(
  533. [in] IVSSItem* pIPrj,
  534. [in] BSTR Local,
  535. [in] BSTR Comment,
  536. [out, retval] VARIANT_BOOL* pbContinue);
  537. HRESULT _stdcall AfterAdd(
  538. [in] IVSSItem* pIItem,
  539. [in] BSTR Local,
  540. [in] BSTR Comment);
  541. HRESULT _stdcall BeforeCheckout(
  542. [in] IVSSItem* pIItem,
  543. [in] BSTR Local,
  544. [in] BSTR Comment,
  545. [out, retval] VARIANT_BOOL* pbContinue);
  546. HRESULT _stdcall AfterCheckout(
  547. [in] IVSSItem* pIItem,
  548. [in] BSTR Local,
  549. [in] BSTR Comment);
  550. HRESULT _stdcall BeforeCheckin(
  551. [in] IVSSItem* pIItem,
  552. [in] BSTR Local,
  553. [in] BSTR Comment,
  554. [out, retval] VARIANT_BOOL* pbContinue);
  555. HRESULT _stdcall AfterCheckin(
  556. [in] IVSSItem* pIItem,
  557. [in] BSTR Local,
  558. [in] BSTR Comment);
  559. HRESULT _stdcall BeforeUndoCheckout(
  560. [in] IVSSItem* pIItem,
  561. [in] BSTR Local,
  562. [out, retval] VARIANT_BOOL* pbContinue);
  563. HRESULT _stdcall AfterUndoCheckout(
  564. [in] IVSSItem* pIItem,
  565. [in] BSTR Local);
  566. HRESULT _stdcall BeforeRename(
  567. [in] IVSSItem* pIItem,
  568. [in] BSTR NewName,
  569. [out, retval] VARIANT_BOOL* pbContinue);
  570. HRESULT _stdcall AfterRename(
  571. [in] IVSSItem* pIItem,
  572. [in] BSTR OldName);
  573. HRESULT _stdcall BeforeBranch(
  574. [in] IVSSItem* pIItem,
  575. [in] BSTR Comment,
  576. [out, retval] VARIANT_BOOL* pbContinue);
  577. HRESULT _stdcall AfterBranch(
  578. [in] IVSSItem* pIItem,
  579. [in] BSTR Comment);
  580. HRESULT _stdcall BeginCommand(
  581. [in] long unused,
  582. [out, retval] VARIANT_BOOL* pbContinue);
  583. HRESULT _stdcall EndCommand([in] long unused);
  584. HRESULT _stdcall BeforeEvent(
  585. [in] long iEvent,
  586. [in] IVSSItem* pIItem,
  587. [in] BSTR Str,
  588. [in] VARIANT var,
  589. [out, retval] VARIANT_BOOL* pbContinue);
  590. HRESULT _stdcall AfterEvent(
  591. [in] long iEvent,
  592. [in] IVSSItem* pIItem,
  593. [in] BSTR Str,
  594. [in] VARIANT var);
  595. };
  596. [
  597. odl,
  598. uuid(783CD4EB-9D54-11CF-B8EE-00608CC9A71F),
  599. helpstring("SourceSafe application interface"),
  600. dual,
  601. oleautomation
  602. ]
  603. interface IVSS : IDispatch {
  604. [id(0x00000001), propget]
  605. HRESULT _stdcall VSSDatabase([out, retval] IVSSDatabase** ppIVSSDatabase);
  606. };
  607. [
  608. odl,
  609. uuid(783CD4EA-9D54-11CF-B8EE-00608CC9A71F),
  610. helpstring("SourceSafe event interface")
  611. ]
  612. interface IVSSEventHandler : IUnknown {
  613. HRESULT _stdcall Init([in] IVSS* pIVSS);
  614. };
  615. [
  616. uuid(2A0DE0E1-2E9F-11D0-9236-00AA00A1EB95),
  617. noncreatable
  618. ]
  619. coclass VSSApp {
  620. [default] interface IVSS;
  621. [default, source] interface IVSSEvents;
  622. [source] interface IVSSEventsOld;
  623. };
  624. };