AGCIDL.idl 117 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751
  1. /////////////////////////////////////////////////////////////////////////////
  2. // AGCIDL.idl : IDL source for interfaces used by AGC.dll
  3. //
  4. // This file will be processed by the MIDL tool to
  5. // produce the type library (AGC.tlb) and marshalling code.
  6. // Disable the annoying warning about needing NT 4.0 SP3 or greater
  7. midl_pragma warning(disable:2362)
  8. import "oaidl.idl";
  9. import "ocidl.idl";
  10. /////////////////////////////////////////////////////////////////////////////
  11. // Forward Declarartions
  12. //
  13. enum AGCObjectType;
  14. enum AGCHullAbility;
  15. enum AGCAxis;
  16. enum AGCEquipmentType;
  17. enum AGCTreasureType;
  18. enum AGCChatTarget;
  19. enum AGCEventID;
  20. enum FileAttributes;
  21. interface IAGCEventSink;
  22. interface IAGCEventSinkSynchronous;
  23. interface IAGCDebugHook;
  24. interface IAGCGlobal;
  25. interface IAGCVector;
  26. interface IAGCVectorPrivate;
  27. interface IAGCOrientation;
  28. interface IAGCOrientationPrivate;
  29. interface IAGCEvent;
  30. interface IAGCEventCreate;
  31. interface IAGCGameParameters;
  32. interface IAGCCommand;
  33. interface IAGCCommandPrivate;
  34. interface IAGCVersionInfo;
  35. interface IAGCDBParams;
  36. interface IAGCEventLogger;
  37. interface IAGCEventLoggerHook;
  38. interface IAGCEventLoggerPrivate;
  39. interface IAGCRangePrivate;
  40. interface IAGCRangesPrivate;
  41. interface IAGCEventIDRange;
  42. interface IAGCEventIDRanges;
  43. interface ITCCollection;
  44. interface ITCStrings;
  45. interface ITCPropBagOnRegKey;
  46. interface ITCSessionInfo;
  47. interface ITCSessionInfos;
  48. interface ITCCollectionPersistHelper;
  49. interface ITCUtility;
  50. interface IAdminSessionHelper;
  51. interface IAGCPrivate;
  52. interface IAGCCommon;
  53. interface IAGCCollection;
  54. interface IAGCBase; // "base" as in "base class", not to be confused with Station
  55. interface IAGCModel;
  56. interface IAGCModels;
  57. interface IAGCBuyable;
  58. interface IAGCHullType;
  59. //interface IAGCHullTypes;
  60. interface IAGCTreasure;
  61. interface IAGCTreasures;
  62. interface IAGCDamage;
  63. interface IAGCScanner;
  64. interface IAGCProbe;
  65. interface IAGCProbes;
  66. interface IAGCGame;
  67. interface IAGCShip;
  68. interface IAGCShips;
  69. interface IAGCStation;
  70. interface IAGCStations;
  71. interface IAGCAleph;
  72. interface IAGCAlephs;
  73. interface IAGCSector;
  74. interface IAGCSectors;
  75. interface IAGCTeam;
  76. interface IAGCTeams;
  77. interface IAGCAsteroid;
  78. interface IAGCAsteroids;
  79. /////////////////////////////////////////////////////////////////////////////
  80. // {secret}
  81. // DISPID Enumeration
  82. //
  83. enum dispid_AGCIDL
  84. {
  85. dispid_AGCIDL_Begin = 100,
  86. dispid_Description = dispid_AGCIDL_Begin,
  87. // AGCBase
  88. dispid_ObjectType,
  89. dispid_ObjectID,
  90. dispid_UniqueID = 9999,
  91. dispid_GetMission = dispid_ObjectID + 1,
  92. dispid_BaseUniqueID,
  93. dispid_Price,
  94. dispid_TimeToBuild,
  95. dispid_Type,
  96. dispid_Amount,
  97. dispid_Buyable,
  98. dispid_Orientation,
  99. dispid_Rotation,
  100. dispid_Radius,
  101. dispid_Team,
  102. dispid_Mass,
  103. dispid_Sector,
  104. dispid_Signature,
  105. dispid_ModelName,
  106. dispid_IsSelectable,
  107. dispid_IsScanner,
  108. dispid_IsPredictable,
  109. dispid_IsScanRequired,
  110. dispid_IsStatic,
  111. dispid_IsDamagable,
  112. dispid_IsHitable,
  113. dispid_IsVisible,
  114. dispid_IsSeenBySide,
  115. dispid_Position,
  116. dispid_Velocity,
  117. dispid_Fraction,
  118. dispid_InScannerRange,
  119. dispid_CanSee,
  120. dispid_VectorX,
  121. dispid_VectorY,
  122. dispid_VectorZ,
  123. dispid_VectorDisplayString,
  124. dispid_Target,
  125. dispid_Verb,
  126. dispid_Length,
  127. dispid_MaxSpeed,
  128. dispid_MaxTurnRate,
  129. dispid_TurnTorque,
  130. dispid_Thrust,
  131. dispid_SideMultiplier,
  132. dispid_BackMultiplier,
  133. dispid_ScannerRange,
  134. dispid_MaxEnergy,
  135. dispid_RechargeRate,
  136. dispid_HitPoints,
  137. dispid_PartMask,
  138. dispid_MaxWeapons,
  139. dispid_MaxFixedWeapons,
  140. dispid_CanMount,
  141. dispid_Capabilities,
  142. dispid_HasCapability,
  143. dispid_MaxAmmo,
  144. dispid_MaxFuel,
  145. dispid_AutoDonate,
  146. dispid_ShieldFraction,
  147. dispid_UserName,
  148. dispid_ComputerName,
  149. dispid_ApplicationName,
  150. dispid_TimeCreated,
  151. dispid_Duration,
  152. dispid_Cookie,
  153. dispid_Collection1,
  154. dispid_Collection2,
  155. dispid_Collection3,
  156. dispid_Collection4,
  157. dispid_Collection5,
  158. dispid_Collection6,
  159. dispid_Collection7,
  160. dispid_Collection8,
  161. dispid_Ammo,
  162. dispid_Fuel,
  163. dispid_Energy,
  164. dispid_WingID,
  165. dispid_HullType,
  166. dispid_BaseHullType,
  167. dispid_ProjectileType,
  168. dispid_EmissionPoint,
  169. dispid_Lifespan,
  170. dispid_DtBurst,
  171. dispid_Accuracy,
  172. dispid_IsRipcord,
  173. dispid_Stations,
  174. dispid_Ships,
  175. dispid_Alephs,
  176. dispid_Asteroids,
  177. dispid_ScreenX,
  178. dispid_ScreenY,
  179. dispid_Probes,
  180. dispid_Sectors,
  181. dispid_Teams,
  182. dispid_LookupShip,
  183. dispid_GameParameters,
  184. dispid_GameID,
  185. dispid_LookupTeam,
  186. dispid_GameStage,
  187. dispid_Civ,
  188. dispid_Buoys,
  189. dispid_Models,
  190. dispid_SelectableModels,
  191. dispid_Treasures,
  192. dispid_Mines,
  193. dispid_Missiles,
  194. dispid_ReplayCount,
  195. dispid_ContextName,
  196. dispid_AGCIDL_End = dispid_AGCIDL_Begin + 0x1000
  197. };
  198. /////////////////////////////////////////////////////////////////////////////
  199. [
  200. uuid(15F770CE-1553-11d3-8B60-00C04F681633),
  201. helpstring("AGCUniqueID type.")
  202. ]
  203. typedef long AGCUniqueID;
  204. /////////////////////////////////////////////////////////////////////////////
  205. [
  206. uuid(3CF30DBA-F949-11d2-A50F-00C04F68DEB0),
  207. helpstring("AGCObjectID type.")
  208. ]
  209. typedef short AGCObjectID; // IGC's ObjectID
  210. /////////////////////////////////////////////////////////////////////////////
  211. [
  212. uuid(2F1CF66E-2A97-11d3-8B66-00C04F681633),
  213. helpstring("AGCGameID type.")
  214. ]
  215. typedef long AGCGameID; // IGC's MissionID
  216. /////////////////////////////////////////////////////////////////////////////
  217. [
  218. uuid(E4A8B1CA-F8FB-11d2-A50F-00C04F68DEB0),
  219. helpstring("AGCMoney type.")
  220. ]
  221. typedef long AGCMoney; // IGC's Money
  222. /////////////////////////////////////////////////////////////////////////////
  223. [
  224. uuid(2F31471C-F8E4-11d2-A50F-00C04F68DEB0),
  225. helpstring("AGCHitPoints type.")
  226. ]
  227. typedef short AGCHitPoints; // IGC's HitPoints
  228. /////////////////////////////////////////////////////////////////////////////
  229. [
  230. uuid(3581C176-F8E4-11d2-A50F-00C04F68DEB0),
  231. helpstring("AGCPartMask type.")
  232. ]
  233. typedef unsigned char AGCPartMask; // IGC's PartMask
  234. /////////////////////////////////////////////////////////////////////////////
  235. [
  236. uuid(3581C177-F8E4-11d2-A50F-00C04F68DEB0),
  237. helpstring("AGCMount type.")
  238. ]
  239. typedef char AGCMount; // IGC's Mount
  240. /////////////////////////////////////////////////////////////////////////////
  241. [
  242. uuid(267D0FE4-F8E6-11d2-A50F-00C04F68DEB0),
  243. helpstring("AGCHullAbilityBitMask type.")
  244. ]
  245. typedef short AGCHullAbilityBitMask; // IGC's HullAbilityBitMask
  246. /////////////////////////////////////////////////////////////////////////////
  247. [
  248. uuid(BA3A5628-38B6-11d3-A51D-00C04F68DEB0),
  249. helpstring("AGCAsteroidAbilityBitMask type.")
  250. ]
  251. typedef short AGCAsteroidAbilityBitMask; // IGC's AsteroidAbilityBitMask
  252. /////////////////////////////////////////////////////////////////////////////
  253. [
  254. uuid(CF19DD9A-33D9-11d3-A51C-00C04F68DEB0),
  255. helpstring("AGCSoundID type.")
  256. ]
  257. typedef short AGCSoundID; // IGC's SoundID
  258. /////////////////////////////////////////////////////////////////////////////
  259. // Be sure to keep these in sync with the actual ones in <igc.h>
  260. [
  261. uuid(7E81D620-F94A-11d2-A50F-00C04F68DEB0),
  262. helpstring("Constants for AGCObjectType.")
  263. ]
  264. typedef [v1_enum] enum AGCObjectType // IGC's ObjectType
  265. {
  266. AGCObjectType_Invalid = -1, // IGC's OT_invalid
  267. AGC_ModelBegin = 0, // IGC's OT_modelBegin
  268. AGC_Ship = 0, // IGC's OT_ship
  269. AGC_Station = 1, // IGC's OT_station
  270. AGC_Missile = 2, // IGC's OT_missile
  271. AGC_Mine = 3, // IGC's OT_mine
  272. AGC_Probe = 4, // IGC's OT_probe
  273. AGC_Asteroid = 5, // IGC's OT_asteroid
  274. AGC_Projectile = 6, // IGC's OT_projectile
  275. AGC_Warp = 7, // IGC's OT_warp
  276. AGC_Treasure = 8, // IGC's OT_treasure
  277. AGC_Buoy = 9, // IGC's OT_buoy
  278. AGC_Chaff = 10, // IGC's OT_chaff
  279. AGC_BuildingEffect = 11, // IGC's OT_buildingEffect
  280. AGC_ModelEnd = 11, // IGC's OT_modelEnd
  281. AGC_Side = 12, // IGC's OT_side
  282. AGC_Cluster = 13, // IGC's OT_cluster
  283. AGC_Bucket = 14, // IGC's OT_bucket
  284. AGC_PartBegin = 15, // IGC's OT_partBegin
  285. AGC_Weapon = 15, // IGC's OT_weapon
  286. AGC_Shield = 16, // IGC's OT_shield
  287. AGC_Cloak = 17, // IGC's OT_cloak
  288. AGC_Pack = 18, // IGC's OT_pack
  289. AGC_Afterburner = 19, // IGC's OT_afterburner
  290. AGC_LauncherBegin = 20, // IGC's OT_launcherBegin
  291. AGC_Magazine = 20, // IGC's OT_magazine
  292. AGC_Dispenser = 21, // IGC's OT_dispenser
  293. AGC_LauncherEnd = 21, // IGC's OT_launcherEnd
  294. AGC_PartEnd = 21, // IGC's OT_partEnd
  295. AGC_StaticBegin = 22, // IGC's OT_staticBegin
  296. AGC_ProjectileType = 22, // IGC's OT_projectileType
  297. AGC_MissileType = 23, // IGC's OT_missileType
  298. AGC_MineType = 24, // IGC's OT_mineType
  299. AGC_ProbeType = 25, // IGC's OT_probeType
  300. AGC_ChaffType = 36, // IGC's OT_chaffType
  301. AGC_Civilization = 27, // IGC's OT_civilization
  302. AGC_TreasureSet = 28, // IGC's OT_treasureSet
  303. AGC_BucketStart = 29, // IGC;s OT_bucketStart
  304. AGC_HullType = 29, // IGC's OT_hullType
  305. AGC_PartType = 30, // IGC's OT_partType
  306. AGC_StationType = 31, // IGC's OT_stationType
  307. AGC_Development = 32, // IGC's OT_development
  308. AGC_DroneType = 33, // IGC's OT_droneType
  309. AGC_BucketEnd = 33, // IGC's OT_bucketEnd
  310. AGC_StaticEnd = 33, // IGC's OT_staticEnd
  311. AGC_Constants = 34, // IGC's OT_constants
  312. AGC_AdminUser = 35, // IGC's OT_allsrvUser
  313. AGCObjectType_Max = 36, // IGC's OT_Max
  314. AGC_Any_Objects = 36 // should be equal to or greater than max, but less than 256
  315. } AGCObjectType;
  316. /////////////////////////////////////////////////////////////////////////////
  317. [
  318. uuid(5C756B32-F8E6-11d2-A50F-00C04F68DEB0),
  319. helpstring("Constants for the AGCHullAbilityBitMask type.")
  320. ]
  321. typedef [v1_enum] enum AGCHullAbility // IGC's HullAbilityBitMask
  322. {
  323. AGCHullAbility_Board = 0x01 , // IGC's c_habmBoard
  324. AGCHullAbility_Rescue = 0x02 , // IGC's c_habmRescue
  325. AGCHullAbility_Lifepod = 0x04 , // IGC's c_habmLifepod
  326. AGCHullAbility_NoPickup = 0x08 , // IGC's c_habmNoPickup
  327. AGCHullAbility_NoEjection = 0x10 , // IGC's c_habmNoEjection
  328. AGCHullAbility_NoRipcord = 0x20 , // IGC's c_habmNoRipcord
  329. AGCHullAbility_CheatToDock = 0x40 , // IGC's c_habmCheatToDock
  330. AGCHullAbility_Fighter = 0x80 , // IGC's c_habmFighter
  331. AGCHullAbility_Captital = 0x100, // IGC's c_habmCapital
  332. } AGCHullAbility;
  333. /////////////////////////////////////////////////////////////////////////////
  334. [
  335. uuid(349CEC0A-38B7-11d3-A51D-00C04F68DEB0),
  336. helpstring("Constants for the AGCAsteroidAbilityBitMask type.")
  337. ]
  338. typedef [v1_enum] enum AGCAsteroidAbility // IGC's AsteroidAbilityBitMask
  339. {
  340. AGCAsteroidAbility_MineHe3 = 0x01, // IGC's c_aabmMineHe3 - Has minable ore of Helium (all mutually exclusive)
  341. AGCAsteroidAbility_MineIce = 0x02, // IGC's c_aabmMineIce - Has minable ore of Ice (all mutually exclusive)
  342. AGCAsteroidAbility_MineGold = 0x04, // IGC's c_aabmMineGold - Has minable ore of Golb (all mutually exclusive)
  343. AGCAsteroidAbility_Buildable = 0x08, // IGC's c_aabmBuildable - Buildings can be built on it
  344. AGCAsteroidAbility_Special = 0x10, // IGC's c_aabmSpecial - Special buildings can be built on it
  345. } AGCAsteroidAbility;
  346. /////////////////////////////////////////////////////////////////////////////
  347. [
  348. uuid(30B2A0F4-F8E7-11d2-A50F-00C04F68DEB0),
  349. helpstring("Constants for AGCAxis.")
  350. ]
  351. typedef [v1_enum] enum AGCAxis // IGC's Axis
  352. {
  353. AGCAxis_Yaw = 0, // IGC's c_axisYaw
  354. AGCAxis_Pitch = 1, // IGC's c_axisPitch
  355. AGCAxis_Roll = 2, // IGC's c_axisRoll
  356. AGCAxis_Throttle = 3, // IGC's c_axisThrottle
  357. AGCAxis_Max = 4, // IGC's c_axisMax
  358. } AGCAxis;
  359. /////////////////////////////////////////////////////////////////////////////
  360. [
  361. uuid(DFB0FB10-F8E6-11d2-A50F-00C04F68DEB0),
  362. helpstring("Constants for AGCEquipmentType.")
  363. ]
  364. typedef [v1_enum] enum AGCEquipmentType // IGC's EquipmentType
  365. {
  366. AGCEquipmentType_ChaffLauncher = 0, // IGC's ET_ChaffLauncher
  367. AGCEquipmentType_Weapon = 1, // IGC's ET_Weapon
  368. AGCEquipmentType_Magazine = 2, // IGC's ET_Magazine
  369. AGCEquipmentType_Dispenser = 3, // IGC's ET_Dispenser
  370. AGCEquipmentType_Shield = 4, // IGC's ET_Shield
  371. AGCEquipmentType_Cloak = 5, // IGC's ET_Cloak
  372. AGCEquipmentType_Pack = 6, // IGC's ET_Pack
  373. AGCEquipmentType_Afterburner = 7, // IGC's ET_Afterburner
  374. AGCEquipmentType_MAX = 8, // IGC's ET_MAX
  375. } AGCEquipmentType;
  376. /////////////////////////////////////////////////////////////////////////////
  377. // Be sure to keep thes in sync with the actual ones in <igc.h>
  378. [
  379. uuid(33505004-0E49-11d3-8B59-00C04F681633),
  380. helpstring("Constants for AGCTreasureType.")
  381. ]
  382. typedef [v1_enum] enum AGCTreasureType // IGC's TreasureCode
  383. {
  384. AGCTreasureType_Part = 0, // IGC's c_tcPart
  385. AGCTreasureType_Development = 1, // IGC's c_tcDevelopment
  386. } AGCTreasureType;
  387. /////////////////////////////////////////////////////////////////////////////
  388. // Be sure to keep thes in sync with the actual ones in <igc.h>
  389. [
  390. uuid(3AF8F031-08B2-44af-B12E-F7DBA94B800D),
  391. helpstring("Constants for AGCChatTarget.")
  392. ]
  393. typedef [v1_enum] enum AGCChatTarget // IGC's ChatTarget
  394. {
  395. AGCChat_Everyone = 0, // IGC's CHAT_EVERYONE
  396. AGCChat_Leaders, // IGC's CHAT_LEADERS
  397. AGCChat_Admin, // IGC's CHAT_ADMIN
  398. AGCChat_Ship, // IGC's CHAT_SHIP
  399. // These require objectID to be set
  400. AGCChat_Team, // IGC's CHAT_TEAM
  401. AGCChat_Individual, // IGC's CHAT_INDIVIDUAL
  402. AGCChat_Individual_NoFilter, // IGC's CHAT_INDIVIDUAL_NOFILTER
  403. AGCChat_Wing, // IGC's CHAT_WING
  404. AGCChat_Echo, // IGC's CHAT_ECHO
  405. AGCChat_AllSector, // IGC's CHAT_ALL_SECTOR
  406. AGCChat_FriendlySector, // IGC's CHAT_FRIENDLY_SECTOR
  407. // These are client only ... get translated into multiple sends
  408. AGCChat_Group, // IGC's CHAT_GROUP
  409. AGCChat_GroupNoEcho, // IGC's CHAT_GROUP_NOECHO
  410. // Misc
  411. AGCChat_NoSelection, // IGC's CHAT_NOSELECTION
  412. AGCChat_Max, // IGC's CHAT_MAX
  413. } AGCChatTarget;
  414. /////////////////////////////////////////////////////////////////////////////
  415. // Be sure to keep thes in sync with the actual ones in <igc.h>
  416. [
  417. uuid(98C30026-8936-492d-9CAD-BEC2D046B9ED),
  418. helpstring("Constants for AGCGameStage.")
  419. ]
  420. typedef [v1_enum] enum AGCGameStage // IGC's STAGE
  421. {
  422. AGCGameStage_NotStarted = 0, // IGC's STAGE_NOTSTARTED
  423. AGCGameStage_Starting = 1, // IGC's STAGE_STARTING
  424. AGCGameStage_Started = 2, // IGC's STAGE_STARTED
  425. AGCGameStage_Over = 3, // IGC's STAGE_OVER
  426. AGCGameStage_Terminate = 4, // IGC's STAGE_TERMINATE
  427. } AGCGameStage;
  428. /////////////////////////////////////////////////////////////////////////////
  429. // FileAttributes Enumeration
  430. [
  431. uuid(2942EC80-D0DC-11d2-9646-00C04F68DEB0),
  432. helpstring("Constants for file attributes.")
  433. ]
  434. typedef [v1_enum] enum FileAttributes
  435. {
  436. FileAttribute_None = 0x00000000,
  437. FileAttribute_ReadOnly = 0x00000001,
  438. FileAttribute_Hidden = 0x00000002,
  439. FileAttribute_System = 0x00000004,
  440. FileAttribute_Directory = 0x00000010,
  441. FileAttribute_Archive = 0x00000020,
  442. FileAttribute_Encrypted = 0x00000040,
  443. FileAttribute_Normal = 0x00000080,
  444. FileAttribute_Temporary = 0x00000100,
  445. FileAttribute_SparseFile = 0x00000200,
  446. FileAttribute_ReparsePoint = 0x00000400,
  447. FileAttribute_Compressed = 0x00000800,
  448. FileAttribute_Offline = 0x00001000,
  449. FileAttribute_NotContentIndexed = 0x00002000,
  450. } FileAttributes;
  451. /////////////////////////////////////////////////////////////////////////////
  452. // Include the XML/XSL-generated file
  453. #include <AGCEventsIDL.idl>
  454. /////////////////////////////////////////////////////////////////////////////
  455. [
  456. object, hidden, restricted, pointer_default(unique), nonextensible, oleautomation,
  457. uuid(4CFC5FEC-243A-11d3-AF03-0000F810C3F4),
  458. helpstring("Interface implemented by the hosting application to receive triggered events. Intended for use ONLY by host applications.")
  459. ]
  460. interface IAGCEventSink : IUnknown
  461. {
  462. [helpstring("Called when an AGC event has been triggered.")]
  463. HRESULT OnEventTriggered([in] IAGCEvent* pEvent);
  464. }; // End: interface IAGCEventSink : IUnknown
  465. /////////////////////////////////////////////////////////////////////////////
  466. [
  467. object, hidden, restricted, pointer_default(unique), nonextensible, oleautomation,
  468. uuid(4852B61D-0D40-428b-A6C2-9276700F0FCD),
  469. helpstring("Interface implemented by the hosting application to receive triggered events. Intended for use ONLY by host applications.")
  470. ]
  471. interface IAGCEventSinkSynchronous : IUnknown
  472. {
  473. [helpstring("Called when an AGC event has been triggered.")]
  474. HRESULT OnEventTriggeredSynchronous([in] IAGCEvent* pEvent);
  475. }; // End: interface IAGCEventSinkSynchronous : IUnknown
  476. /////////////////////////////////////////////////////////////////////////////
  477. // Used by the IAGCGlobal::RegisterObjectCreator method.
  478. //
  479. typedef HRESULT (__stdcall *PFNAGCCreator)(void*, REFIID, void**);
  480. /////////////////////////////////////////////////////////////////////////////
  481. // Used by the IAGCGlobal::EventListeners, TriggerEvent, FreeListeners methods.
  482. //
  483. typedef void* HAGCLISTENERS;
  484. /////////////////////////////////////////////////////////////////////////////
  485. [
  486. object, local, hidden, restricted, pointer_default(unique), nonextensible,
  487. uuid(9A153413-CC15-4ea1-A9BB-E0854726CAED),
  488. helpstring("Implemented by an AGC host to hook debug events.")
  489. ]
  490. interface IAGCDebugHook : IUnknown
  491. {
  492. [helpstring("Called to output the specified text to the debug monitor.")]
  493. void DebugOutput([in] LPCSTR psz);
  494. [helpstring("Called when an assertion fails.")]
  495. boolean OnAssert([in] LPCSTR psz, [in] LPCSTR pszFile,
  496. [in] int line, [in] LPCSTR pszModule);
  497. [helpstring("Called to break into a debugger after an assertion fails.")]
  498. void OnAssertBreak();
  499. };
  500. /////////////////////////////////////////////////////////////////////////////
  501. [
  502. // object,
  503. local, hidden, restricted, pointer_default(unique), nonextensible,
  504. uuid(F4385BC0-1FCC-11d3-AF03-0000F810C3F4),
  505. helpstring("Interface to the AGC Global object. Intended for use ONLY by host applications that deal directly with Igc.")
  506. ]
  507. interface IAGCGlobal : IUnknown
  508. {
  509. // Object Creation Registration
  510. [helpstring("Registers the function that is called to create the object that suports the specified interface")]
  511. void RegisterObjectCreator([in] REFIID riid, [in] PFNAGCCreator pfnCreator);
  512. [helpstring("Revokes the function that is called to create the object that suports the specified interface")]
  513. void RevokeObjectCreator([in] REFIID riid);
  514. // IGC to AGC Mapping
  515. [helpstring("Finds or makes an AGC object, given a pointer to an IGC object.")]
  516. HRESULT GetAGCObject([in] const void* pvIgc, [in] REFIID riid,
  517. [out, iid_is(riid)] void** ppUnk);
  518. [helpstring("Adds a mapping of an Igc object pointer to an AGC object.")]
  519. void AddAGCObject([in] const void* pvIgc, [in] IUnknown* pUnkAGC);
  520. [helpstring("Removes a mapping of the specified AGC object.")]
  521. void RemoveAGCObject([in] const void* pvIgc, [in] boolean bForceDestruct);
  522. // Event Registration
  523. [helpstring("When true, indicates that all IAGCEventSink* parameters are actually GIT cookies.")]
  524. void SetEventSinksAreGITCookies([in] boolean bEventSinksAreGITCookies);
  525. [helpstring("When true, indicates that all IAGCEventSink* parameters are actually GIT cookies.")]
  526. boolean GetEventSinksAreGITCookies();
  527. [helpstring("Registers an event sink for the specified event.")]
  528. void RegisterEvent([in] AGCEventID eventID, [in] AGCUniqueID uniqueID,
  529. [in] IAGCEventSink* pEventSink);
  530. [helpstring("Revokes an event sink for the specified event.")]
  531. boolean RevokeEvent([in] AGCEventID eventID, [in] AGCUniqueID uniqueID,
  532. [in] IAGCEventSink* pEventSink);
  533. [helpstring("Registers an event sink for the specified ranges of events.")]
  534. void RegisterEventRanges([in] IAGCEventIDRanges* pRanges,
  535. [in] AGCUniqueID uniqueID, [in] IAGCEventSink* pEventSink);
  536. [helpstring("Revokes an event sink for the specified ranges of events.")]
  537. void RevokeEventRanges([in] IAGCEventIDRanges* pRanges,
  538. [in] AGCUniqueID uniqueID, [in] IAGCEventSink* pEventSink);
  539. [helpstring("Revokes an event sink for all its registered events.")]
  540. int RevokeAllEvents([in] IAGCEventSink* pEventSink);
  541. [helpstring("Registers an event sink for all available events.")]
  542. int RegisterAllEvents([in] IAGCEventSink* pEventSink);
  543. [helpstring("Returns a non-zero handle if someone wants to know about an event. This handle should be released by passing it to either TriggerEvent or FreeListeners.")]
  544. HAGCLISTENERS EventListeners([in] AGCEventID idEvent, [in] AGCUniqueID idSubject,
  545. [in] AGCUniqueID idObject1, [in] AGCUniqueID idObject2);
  546. [helpstring("Notifies registered event sinks that the specified event occurred. Internally calls FreeListeners before returning.")]
  547. void TriggerEvent([in] HAGCLISTENERS hListeners, [in] AGCEventID idEvent,
  548. [in] LPCSTR pszContext, [in] LPCOLESTR pszSubject, [in] AGCUniqueID idSubject,
  549. [in] AGCUniqueID idObject1, [in] AGCUniqueID idObject2,
  550. [in] long cArgTriplets, [in] void* pvArgs);
  551. [helpstring("Notifies registered event sinks that the specified event occurred. Internally calls FreeListeners before returning. Does not return until the listener thread processes the event.")]
  552. void TriggerEventSynchronous([in] HAGCLISTENERS hListeners, [in] AGCEventID idEvent,
  553. [in] LPCSTR pszContext, [in] LPCOLESTR pszSubject, [in] AGCUniqueID idSubject,
  554. [in] AGCUniqueID idObject1, [in] AGCUniqueID idObject2,
  555. [in] long cArgTriplets, [in] void* pvArgs);
  556. [helpstring("Frees the list of event sinks allocated by EventListeners. Only use if you don't pass the handle to TriggerEvent.")]
  557. void FreeListeners([in] HAGCLISTENERS hListeners);
  558. [helpstring("Determines if the specified event sink is registered for the specified event.")]
  559. boolean IsRegistered([in] AGCEventID eventID, [in] AGCUniqueID uniqueID,
  560. [in] IAGCEventSink* pEventSink);
  561. [helpstring("Create an AGCEvent object, initialized with the specified arguments.")]
  562. HRESULT MakeAGCEvent([in] AGCEventID idEvent, [in] LPCSTR pszContext,
  563. [in] LPCOLESTR pszSubject, [in] AGCUniqueID idSubject,
  564. [in] long cArgTriplets, [in] void* pvArgs,
  565. [out, retval] IAGCEvent** ppEvent);
  566. [helpstring("Sets the ranges of event ID's available from the host application.")]
  567. void SetAvailableEventIDRanges([in] IAGCEventIDRanges* pRanges);
  568. [helpstring("Gets the ranges of event ID's available from the host application.")]
  569. void GetAvailableEventIDRanges([out, retval] IAGCEventIDRanges** ppRanges);
  570. [helpstring("Gets the severity of the specified event.")]
  571. WORD GetEventSeverity([in] AGCEventID idEvent);
  572. // Miscellaneous
  573. [helpstring("Gets the resource instance handle of the AGC.DLL module.")]
  574. HINSTANCE GetResourceInstance();
  575. [helpstring("Creates an AGCVector object, initialized with the specified raw ZLib vector.")]
  576. HRESULT MakeAGCVector([in] const void* pVectorRaw,
  577. [out, retval] IAGCVector** ppVector);
  578. [helpstring("Creates an AGCOrientation object, initialized with the specified raw ZLib orientation.")]
  579. HRESULT MakeAGCOrientation([in] const void* pOrientationRaw,
  580. [out, retval] IAGCOrientation** ppOrientation);
  581. [helpstring("Creates an AGCEventIDRange object, initialized with the specified values.")]
  582. HRESULT MakeAGCEventIDRange([in] AGCEventID lower, [in] AGCEventID upper,
  583. [out, retval] IAGCEventIDRange** ppRange);
  584. // IGlobalInterfaceTable Interface Methods (delegate to single GIT instance)
  585. HRESULT RegisterInterfaceInGlobal([in] IUnknown *pUnk, [in] REFIID riid, [out] DWORD* pdwCookie);
  586. HRESULT RevokeInterfaceFromGlobal([in] DWORD dwCookie);
  587. HRESULT GetInterfaceFromGlobal([in] DWORD dwCookie,[in] REFIID riid, [out, iid_is(riid)] void** ppv);
  588. // Object Initialization and Cleanup
  589. void Initialize();
  590. void Terminate();
  591. // Debug Support
  592. [helpstring("Sets the callback interface used to hook debug events.")]
  593. void SetDebugHook([in] IAGCDebugHook* pdh);
  594. }; // End: interface IAGCGlobal : IUnknown
  595. /////////////////////////////////////////////////////////////////////////////
  596. [
  597. object, dual, pointer_default(unique), nonextensible,
  598. uuid(EFC30B36-13B1-11d3-8B5E-00C04F681633),
  599. helpstring("Interface to a AGC Vector object.")
  600. ]
  601. interface IAGCVector : IDispatch
  602. {
  603. [propput, helpstring("Gets/sets the x coordinate of the vector.")]
  604. HRESULT X([in] float xArg);
  605. [propget, id(dispid_VectorX)]
  606. HRESULT X([out, retval] float* pxArg);
  607. [propput, helpstring("Gets/sets the y coordinate of the vector.")]
  608. HRESULT Y([in] float yArg);
  609. [propget, id(dispid_VectorY)]
  610. HRESULT Y([out, retval] float* pyArg);
  611. [propput, helpstring("Gets/sets the z coordinate of the vector.")]
  612. HRESULT Z([in] float zArg);
  613. [propget, id(dispid_VectorZ)]
  614. HRESULT Z([out, retval] float* pzArg);
  615. [propput, helpstring("Gets/sets the displayable string representation of the vector.")]
  616. HRESULT DisplayString([in] BSTR bstrDisplayString);
  617. [propget, id(DISPID_VALUE), helpstring("Gets the displayable string representation of the vector.")]
  618. HRESULT DisplayString([out, retval] BSTR* pbstrDisplayString);
  619. [helpstring("Initializes the object with the specified x, y, and z values.")]
  620. HRESULT InitXYZ([in] float xArg, [in] float yArg, [in] float zArg);
  621. [helpstring("Initializes the object by copying the specified vector's x, y, and z values.")]
  622. HRESULT InitCopy([in] IAGCVector* pVector);
  623. [helpstring("Initializes the object with a random direction.")]
  624. HRESULT InitRandomDirection();
  625. [helpstring("Initializes the object with a random position.")]
  626. HRESULT InitRandomPosition([in] float fRadius);
  627. [propget, helpstring("Compares the object to a zero vector.")]
  628. HRESULT IsZero([out, retval] VARIANT_BOOL* pbIsZero);
  629. [propget, helpstring("Compares the object to the specified vector.")]
  630. HRESULT IsEqual([in] IAGCVector* pVector, [out, retval] VARIANT_BOOL* pbIsEqual);
  631. [propget, helpstring("Computes the length of the object from a zero vector.")]
  632. HRESULT Length([out, retval] float* pfLength);
  633. [propget, helpstring("Computes the squared length of the object from a zero vector.")]
  634. HRESULT LengthSquared([out, retval] float* pfLengthSquared);
  635. [propget, helpstring("Computes the orthogonal vector of the object.")]
  636. HRESULT OrthogonalVector([out, retval] IAGCVector** ppResult);
  637. [helpstring("Computes the sum of the object and the specified vector. Does not modify the object.")]
  638. HRESULT Add([in] IAGCVector* pVector, [out, retval] IAGCVector** ppResult);
  639. [helpstring("Computes the difference of the object and the specified vector. Does not modify the object.")]
  640. HRESULT Subtract([in] IAGCVector* pVector, [out, retval] IAGCVector** ppResult);
  641. [helpstring("Computes the product of the object and the specified multiplier value. Does not modify the object.")]
  642. HRESULT Multiply([in] float f, [out, retval] IAGCVector** ppResult);
  643. [helpstring("Computes the quotient of the object and the specified divisor value. Does not modify the object.")]
  644. HRESULT Divide([in] float f, [out, retval] IAGCVector** ppResult);
  645. [helpstring("Computes the normalized vector of the object. Does not modify the object.")]
  646. HRESULT Normalize([out, retval] IAGCVector** ppResult);
  647. [helpstring("Computes the cross product of the object and the specified vector. Does not modify the object.")]
  648. HRESULT CrossProduct([in] IAGCVector* pVector, [out, retval] IAGCVector** ppResult);
  649. [helpstring("Computes an interpolation of the object with the specified vector. Does not modify the object.")]
  650. HRESULT Interpolate([in] IAGCVector* pVector, [in] float fValue, [out, retval] IAGCVector** ppResult);
  651. [helpstring("Computes the sum of the object and the specified vector, with the result being stored in the object.")]
  652. HRESULT AddInPlace([in] IAGCVector* pVector);
  653. [helpstring("Computes the difference of the object and the specified vector, with the result being stored in the object.")]
  654. HRESULT SubtractInPlace([in] IAGCVector* pVector);
  655. [helpstring("Computes the product of the object and the specified multiplier value, with the result being stored in the object.")]
  656. HRESULT MultiplyInPlace([in] float f);
  657. [helpstring("Computes the quotient of the object and the specified divisor value, with the result being stored in the object.")]
  658. HRESULT DivideInPlace([in] float f);
  659. [helpstring("Computes the normalized vector of the object, with the result being stored in the object.")]
  660. HRESULT NormalizeInPlace();
  661. [helpstring("Computes the cross product of the object and the specified vector, with the result being stored in the object.")]
  662. HRESULT CrossProductInPlace([in] IAGCVector* pVector);
  663. [helpstring("Computes an interpolation of the object with the specified vector, with the result being stored in the object.")]
  664. HRESULT InterpolateInPlace([in] IAGCVector* pVector, [in] float fValue);
  665. }; // End: interface IAGCVector : IDispatch
  666. /////////////////////////////////////////////////////////////////////////////
  667. // IAGCVectorPrivate
  668. [
  669. hidden, restricted, object, local, pointer_default(unique), nonextensible,
  670. uuid(9DAF96AE-2F5A-11d3-A51C-00C04F68DEB0),
  671. helpstring("Private interface to an AGC Vector object.")
  672. ]
  673. interface IAGCVectorPrivate : IUnknown
  674. {
  675. [helpstring("Initializes the object from a raw (ZLib/IGC) Vector pointer.")]
  676. HRESULT InitFromVector([in] const void* pvVector);
  677. [helpstring("Copies the object's raw (ZLib/IGC) Vector to the specified Vector pointer.")]
  678. HRESULT CopyVectorTo([in, out] void* pvVector);
  679. }; // End: interface IAGCVectorPrivate : IDispatch
  680. /////////////////////////////////////////////////////////////////////////////
  681. [
  682. object, dual, pointer_default(unique), nonextensible,
  683. uuid(C6D92776-3998-11d3-A51D-00C04F68DEB0),
  684. helpstring("Interface to an AGC Orientation object.")
  685. ]
  686. interface IAGCOrientation : IDispatch
  687. {
  688. [helpstring("Initializes the object by copying the specified object.")]
  689. HRESULT InitCopy(IAGCOrientation* pOrientation);
  690. [propget, helpstring("Gets the Forward vector of the orientation matrix.")]
  691. HRESULT Forward([out, retval] IAGCVector** ppVector);
  692. [propget, helpstring("Gets the Backward vector of the orientation matrix.")]
  693. HRESULT Backward([out, retval] IAGCVector** ppVector);
  694. [propget, helpstring("Gets the Up vector of the orientation matrix.")]
  695. HRESULT Up([out, retval] IAGCVector** ppVector);
  696. [propget, helpstring("Gets the Right vector of the orientation matrix.")]
  697. HRESULT Right([out, retval] IAGCVector** ppVector);
  698. [propget, helpstring("Compares the object to the specified object for absolute equality.")]
  699. HRESULT IsEqual([in] IAGCOrientation* pOrientation,
  700. [out, retval] VARIANT_BOOL* pbIsEqual);
  701. [propget, helpstring("Compares the object to the specified object for 'fuzzy' equality.")]
  702. HRESULT IsRoughlyEqual([in] IAGCOrientation* pOrientation,
  703. [out, retval] VARIANT_BOOL* pbIsEqual);
  704. }; // End: interface IAGCOrientation : IDispatch
  705. /////////////////////////////////////////////////////////////////////////////
  706. // IAGCOrientationPrivate
  707. [
  708. hidden, restricted, object, local, pointer_default(unique), nonextensible,
  709. uuid(C6D92777-3998-11d3-A51D-00C04F68DEB0),
  710. helpstring("Private interface to an AGC Orientation object.")
  711. ]
  712. interface IAGCOrientationPrivate : IUnknown
  713. {
  714. [helpstring("Initializes the object from a raw (ZLib/IGC) Orientation pointer.")]
  715. HRESULT InitFromOrientation([in] const void* pvOrientation);
  716. [helpstring("Copies the object's raw (ZLib/IGC) Orientation to the specified Orientation pointer.")]
  717. HRESULT CopyOrientationTo([in, out] void* pvOrientation);
  718. }; // End: interface IAGCOrientationPrivate : IDispatch
  719. /////////////////////////////////////////////////////////////////////////////
  720. [
  721. object, dual, pointer_default(unique), nonextensible,
  722. uuid(07000E96-F4F6-4b49-9680-77B770B83905),
  723. helpstring("IAGCEventType Interface")
  724. ]
  725. interface IAGCEventType : IDispatch
  726. {
  727. }; // End: interface IAGCEventType : IDispatch
  728. /////////////////////////////////////////////////////////////////////////////
  729. [
  730. object, dual, pointer_default(unique), nonextensible,
  731. uuid(D2EFE888-1480-11d3-8B5F-00C04F681633),
  732. helpstring("IAGCEvent Interface")
  733. ]
  734. interface IAGCEvent : IDispatch
  735. {
  736. [propget, helpstring("Gets the event identifier.")]
  737. HRESULT ID([out, retval] AGCEventID* pVal);
  738. [propget, helpstring("Gets the date and time that the event occurred.")]
  739. HRESULT Time([out, retval] DATE* pVal);
  740. [propget, helpstring("Gets the textual description of the event that occurred.")]
  741. HRESULT Description([out, retval] BSTR* bstr);
  742. [propget, helpstring("Gets the number of event parameters in the property map.")]
  743. HRESULT PropertyCount([out, retval] long* pnCount);
  744. [propget, helpstring("Gets whether or not the specified event parameter is in the property map.")]
  745. HRESULT PropertyExists([in] BSTR bstrKey, [out, retval] VARIANT_BOOL* pbExists);
  746. [propget, id(DISPID_VALUE), helpstring("Gets the specified event parameter from the property map.")]
  747. HRESULT Property([in, defaultvalue(NULL)] VARIANT* pvKey,
  748. [out, retval] VARIANT* pvValue);
  749. [propget, helpstring("Gets the name of the computer on which the event occurred.")]
  750. HRESULT ComputerName([out, retval] BSTR* pbstrComputerName);
  751. [propget, helpstring("Gets the ID of the subject of the event, if any. Otherwise, -1.")]
  752. HRESULT SubjectID([out, retval] long* pidSubject);
  753. [propget, helpstring("Gets the name of the subject of the event, if any.")]
  754. HRESULT SubjectName([out, retval] BSTR* pbstrSubject);
  755. [helpstring("Persists the object to a string representation, to be resolved with LoadFromString.")]
  756. HRESULT SaveToString([out, retval] BSTR* pbstr);
  757. [helpstring("Initializes the object from a persistence string returned by SaveToString.")]
  758. HRESULT LoadFromString([in] BSTR bstr);
  759. [propget, helpstring("Gets a string representing the context in which the event occurred.")]
  760. HRESULT Context([out, retval] BSTR* pbstrContext);
  761. }; // End: interface IAGCEvent : IDispatch
  762. /////////////////////////////////////////////////////////////////////////////
  763. [
  764. object, dual, pointer_default(unique), nonextensible,
  765. uuid(9D43ACA9-98A3-45ba-BFAA-340D451FCD98),
  766. helpstring("IAGCEventCreate Interface")
  767. ]
  768. interface IAGCEventCreate : IDispatch
  769. {
  770. [helpstring("Initializes object.")]
  771. HRESULT Init();
  772. [propput, helpstring("Sets the event identifier.")]
  773. HRESULT ID([in] AGCEventID Val);
  774. [propput, helpstring("Sets the date and time that the event occurred.")]
  775. HRESULT Time([in] DATE Val);
  776. [helpstring("Sets the time property to the current date/time.")]
  777. HRESULT SetTimeNow();
  778. [helpstring("Adds the specified event parameter to the property map.")]
  779. HRESULT AddProperty([in] BSTR pbstrKey, [in] VARIANT* pvValue);
  780. [helpstring("Removes the specified event parameter from the property map.")]
  781. HRESULT RemoveProperty([in] BSTR pbstrKey, [in] VARIANT* pvValue);
  782. [propput, helpstring("Sets the ID of the subject of the event, if any. Otherwise, -1.")]
  783. HRESULT SubjectID([in] long idSubject);
  784. [propput, helpstring("Sets the name of the subject of the event, if any.")]
  785. HRESULT SubjectName([in] BSTR bstrSubject);
  786. [propput, helpstring("Sets the string representing the context in which the event occurred.")]
  787. HRESULT Context([in] BSTR bstrContext);
  788. }; // End: interface IAGCEventCreate : IDispatch
  789. /////////////////////////////////////////////////////////////////////////////
  790. [
  791. object, dual, pointer_default(unique), nonextensible,
  792. uuid(E71EA5B9-EBA4-11D2-8B4B-00C04F681633),
  793. helpstring("IAGCGameParameters Interface")
  794. ]
  795. interface IAGCGameParameters : IDispatch
  796. {
  797. [helpstring("Validates the properties of the object.")]
  798. HRESULT Validate();
  799. [propput, helpstring("Gets/sets the minimum players per team.")]
  800. HRESULT MinPlayers([in] BYTE Val);
  801. [propget]
  802. HRESULT MinPlayers([out, retval] BYTE* pVal);
  803. [propput, helpstring("Gets/sets the maximum players per team.")]
  804. HRESULT MaxPlayers([in] BYTE Val);
  805. [propget]
  806. HRESULT MaxPlayers([out, retval] BYTE* pVal);
  807. [propget, id(DISPID_VALUE), helpstring("property GameName")] HRESULT GameName([out, retval] BSTR *pVal);
  808. [propput, id(DISPID_VALUE), helpstring("property GameName")] HRESULT GameName([in] BSTR newVal);
  809. [propget, helpstring("property EjectPods")] HRESULT EjectPods([out, retval] VARIANT_BOOL *pVal);
  810. [propput, helpstring("property EjectPods")] HRESULT EjectPods([in] VARIANT_BOOL newVal);
  811. [propget, helpstring("property AllowPrivateTeams")] HRESULT AllowPrivateTeams([out, retval] VARIANT_BOOL *pVal);
  812. [propput, helpstring("property AllowPrivateTeams")] HRESULT AllowPrivateTeams([in] VARIANT_BOOL newVal);
  813. [propget, helpstring("property PowerUps")] HRESULT PowerUps([out, retval] VARIANT_BOOL *pVal);
  814. [propput, helpstring("property PowerUps")] HRESULT PowerUps([in] VARIANT_BOOL newVal);
  815. [propget, helpstring("property AllowJoiners")] HRESULT AllowJoiners([out, retval] VARIANT_BOOL *pVal);
  816. [propput, helpstring("property AllowJoiners")] HRESULT AllowJoiners([in] VARIANT_BOOL newVal);
  817. [propget, helpstring("property Stations")] HRESULT Stations([out, retval] VARIANT_BOOL *pVal);
  818. [propput, helpstring("property Stations")] HRESULT Stations([in] VARIANT_BOOL newVal);
  819. [propget, helpstring("property ScoresCount")] HRESULT ScoresCount([out, retval] VARIANT_BOOL *pVal);
  820. [propput, helpstring("property ScoresCount")] HRESULT ScoresCount([in] VARIANT_BOOL newVal);
  821. [propget, helpstring("property Drones")] HRESULT Drones([out, retval] VARIANT_BOOL *pVal);
  822. [propput, helpstring("property Drones")] HRESULT Drones([in] VARIANT_BOOL newVal);
  823. [propget, helpstring("property IsGoalConquest")] HRESULT IsGoalConquest([out, retval] VARIANT_BOOL *pVal);
  824. [propput, helpstring("property IsGoalConquest")] HRESULT IsGoalConquest([in] VARIANT_BOOL newVal);
  825. [propget, helpstring("property IsGoalArtifacts")] HRESULT IsGoalArtifacts([out, retval] VARIANT_BOOL *pVal);
  826. [propput, helpstring("property IsGoalArtifacts")] HRESULT IsGoalArtifacts([in] VARIANT_BOOL newVal);
  827. [propget, helpstring("property IsGoalTeamMoney")] HRESULT IsGoalTeamMoney([out, retval] VARIANT_BOOL *pVal);
  828. [propput, helpstring("property IsGoalTeamMoney")] HRESULT IsGoalTeamMoney([in] VARIANT_BOOL newVal);
  829. [propget, helpstring("property IsGoalTeamKills")] HRESULT IsGoalTeamKills([out, retval] VARIANT_BOOL *pVal);
  830. [propput, helpstring("property IsGoalTeamKills")] HRESULT IsGoalTeamKills([in] VARIANT_BOOL newVal);
  831. [propget, helpstring("property Resources")] HRESULT Resources([out, retval] VARIANT_BOOL *pVal);
  832. [propput, helpstring("property Resources")] HRESULT Resources([in] VARIANT_BOOL newVal);
  833. [propget, helpstring("property ResourceAmountsVisible")] HRESULT ResourceAmountsVisible([out, retval] VARIANT_BOOL *pVal);
  834. [propput, helpstring("property ResourceAmountsVisible")] HRESULT ResourceAmountsVisible([in] VARIANT_BOOL newVal);
  835. [propget, helpstring("property RandomWormholes")] HRESULT RandomWormholes([out, retval] VARIANT_BOOL *pVal);
  836. [propput, helpstring("property RandomWormholes")] HRESULT RandomWormholes([in] VARIANT_BOOL newVal);
  837. [propget, helpstring("property NoTeams")] HRESULT NoTeams([out, retval] VARIANT_BOOL *pVal);
  838. [propput, helpstring("property NoTeams")] HRESULT NoTeams([in] VARIANT_BOOL newVal);
  839. [propget, helpstring("property ShowHomeSector")] HRESULT ShowHomeSector([out, retval] VARIANT_BOOL *pVal);
  840. [propput, helpstring("property ShowHomeSector")] HRESULT ShowHomeSector([in] VARIANT_BOOL newVal);
  841. [propget, helpstring("property CivIDs")] HRESULT CivIDs(short element, [out, retval] short *pVal);
  842. [propput, helpstring("property CivIDs")] HRESULT CivIDs(short element, [in] short newVal);
  843. [propget, helpstring("property GoalTeamMoney")] HRESULT GoalTeamMoney([out, retval] AGCMoney *pVal);
  844. [propput, helpstring("property GoalTeamMoney")] HRESULT GoalTeamMoney([in] AGCMoney newVal);
  845. [propget, helpstring("property TsiPlayerStart")] HRESULT TsiPlayerStart([out, retval] short *pVal);
  846. [propput, helpstring("property TsiPlayerStart")] HRESULT TsiPlayerStart([in] short newVal);
  847. [propget, helpstring("property TsiNeutralStart")] HRESULT TsiNeutralStart([out, retval] short *pVal);
  848. [propput, helpstring("property TsiNeutralStart")] HRESULT TsiNeutralStart([in] short newVal);
  849. [propget, helpstring("property TsiPlayerRegenerate")] HRESULT TsiPlayerRegenerate([out, retval] short *pVal);
  850. [propput, helpstring("property TsiPlayerRegenerate")] HRESULT TsiPlayerRegenerate([in] short newVal);
  851. [propget, helpstring("property TsiNeutralRegenerate")] HRESULT TsiNeutralRegenerate([out, retval] short *pVal);
  852. [propput, helpstring("property TsiNeutralRegenerate")] HRESULT TsiNeutralRegenerate([in] short newVal);
  853. [propget, helpstring("property StartingMoney")] HRESULT StartingMoney([out, retval] float *pVal);
  854. [propput, helpstring("property StartingMoney")] HRESULT StartingMoney([in] float newVal);
  855. [propget, helpstring("property Lives")] HRESULT Lives([out, retval] short *pVal);
  856. [propput, helpstring("property Lives")] HRESULT Lives([in] short newVal);
  857. [propget, helpstring("property GoalTeamKills")] HRESULT GoalTeamKills([out, retval] short *pVal);
  858. [propput, helpstring("property GoalTeamKills")] HRESULT GoalTeamKills([in] short newVal);
  859. [propget, helpstring("property MapType")] HRESULT MapType([out, retval] short *pVal);
  860. [propput, helpstring("property MapType")] HRESULT MapType([in] short newVal);
  861. [propget, helpstring("property MapSize")] HRESULT MapSize([out, retval] short *pVal);
  862. [propput, helpstring("property MapSize")] HRESULT MapSize([in] short newVal);
  863. [propget, helpstring("property RandomEncounters")] HRESULT RandomEncounters([out, retval] short *pVal);
  864. [propput, helpstring("property RandomEncounters")] HRESULT RandomEncounters([in] short newVal);
  865. [propget, helpstring("property NeutralSectors")] HRESULT NeutralSectors([out, retval] VARIANT_BOOL *pVal);
  866. [propput, helpstring("property NeutralSectors")] HRESULT NeutralSectors([in] VARIANT_BOOL newVal);
  867. [propget, helpstring("property AlephPositioning")] HRESULT AlephPositioning([out, retval] short *pVal);
  868. [propput, helpstring("property AlephPositioning")] HRESULT AlephPositioning([in] short newVal);
  869. [propget, helpstring("property AlephsPerSector")] HRESULT AlephsPerSector([out, retval] short *pVal);
  870. [propput, helpstring("property AlephsPerSector")] HRESULT AlephsPerSector([in] short newVal);
  871. [propget, helpstring("property Teams")] HRESULT Teams([out, retval] short *pVal);
  872. [propput, helpstring("property Teams")] HRESULT Teams([in] short newVal);
  873. [propget, helpstring("property MinRank")] HRESULT MinRank([out, retval] short *pVal);
  874. [propput, helpstring("property MinRank")] HRESULT MinRank([in] short newVal);
  875. [propget, helpstring("property MaxRank")] HRESULT MaxRank([out, retval] short *pVal);
  876. [propput, helpstring("property MaxRank")] HRESULT MaxRank([in] short newVal);
  877. [propget, helpstring("property PlayerSectorAsteroids")] HRESULT PlayerSectorAsteroids([out, retval] short *pVal);
  878. [propput, helpstring("property PlayerSectorAsteroids")] HRESULT PlayerSectorAsteroids([in] short newVal);
  879. [propget, helpstring("property NeutralSectorAsteroids")] HRESULT NeutralSectorAsteroids([out, retval] short *pVal);
  880. [propput, helpstring("property NeutralSectorAsteroids")] HRESULT NeutralSectorAsteroids([in] short newVal);
  881. [propget, helpstring("property PlayerSectorTreasures")] HRESULT PlayerSectorTreasures([out, retval] short *pVal);
  882. [propput, helpstring("property PlayerSectorTreasures")] HRESULT PlayerSectorTreasures([in] short newVal);
  883. [propget, helpstring("property NeutralSectorTreasures")] HRESULT NeutralSectorTreasures([out, retval] short *pVal);
  884. [propput, helpstring("property NeutralSectorTreasures")] HRESULT NeutralSectorTreasures([in] short newVal);
  885. [propget, helpstring("property PlayerSectorTreasureRate")] HRESULT PlayerSectorTreasureRate([out, retval] FLOAT *pVal);
  886. [propput, helpstring("property PlayerSectorTreasureRate")] HRESULT PlayerSectorTreasureRate([in] FLOAT newVal);
  887. [propget, helpstring("property NeutralSectorTreasureRate")] HRESULT NeutralSectorTreasureRate([out, retval] FLOAT *pVal);
  888. [propput, helpstring("property NeutralSectorTreasureRate")] HRESULT NeutralSectorTreasureRate([in] FLOAT newVal);
  889. [propget, helpstring("property PlayerSectorMineableAsteroids")] HRESULT PlayerSectorMineableAsteroids([out, retval] short *pVal);
  890. [propput, helpstring("property PlayerSectorMineableAsteroids")] HRESULT PlayerSectorMineableAsteroids([in] short newVal);
  891. [propget, helpstring("property NeutralSectorMineableAsteroids")] HRESULT NeutralSectorMineableAsteroids([out, retval] short *pVal);
  892. [propput, helpstring("property NeutralSectorMineableAsteroids")] HRESULT NeutralSectorMineableAsteroids([in] short newVal);
  893. [propget, helpstring("property PlayerSectorSpecialAsteroids")] HRESULT PlayerSectorSpecialAsteroids([out, retval] short *pVal);
  894. [propput, helpstring("property PlayerSectorSpecialAsteroids")] HRESULT PlayerSectorSpecialAsteroids([in] short newVal);
  895. [propget, helpstring("property NeutralSectorSpecialAsteroids")] HRESULT NeutralSectorSpecialAsteroids([out, retval] short *pVal);
  896. [propput, helpstring("property NeutralSectorSpecialAsteroids")] HRESULT NeutralSectorSpecialAsteroids([in] short newVal);
  897. [propget, helpstring("property IGCStaticFile")] HRESULT IGCStaticFile([out, retval] BSTR *pVal);
  898. [propput, helpstring("property IGCStaticFile")] HRESULT IGCStaticFile([in] BSTR newVal);
  899. [propget, helpstring("property GamePassword")] HRESULT GamePassword([out, retval] BSTR *pVal);
  900. [propput, helpstring("property GamePassword")] HRESULT GamePassword([in] BSTR newVal);
  901. [propget, helpstring("property InvulnerableStations")] HRESULT InvulnerableStations([out, retval] VARIANT_BOOL *pVal);
  902. [propput, helpstring("property InvulnerableStations")] HRESULT InvulnerableStations([in] VARIANT_BOOL newVal);
  903. [propget, helpstring("property ShowMap")] HRESULT ShowMap([out, retval] VARIANT_BOOL *pVal);
  904. [propput, helpstring("property ShowMap")] HRESULT ShowMap([in] VARIANT_BOOL newVal);
  905. [propget, helpstring("property AllowDevelopments")] HRESULT AllowDevelopments([out, retval] VARIANT_BOOL *pVal);
  906. [propput, helpstring("property AllowDevelopments")] HRESULT AllowDevelopments([in] VARIANT_BOOL newVal);
  907. [propget, helpstring("property AllowDefections")] HRESULT AllowDefections([out, retval] VARIANT_BOOL *pVal);
  908. [propput, helpstring("property AllowDefections")] HRESULT AllowDefections([in] VARIANT_BOOL newVal);
  909. [propget, helpstring("property SquadGame")] HRESULT SquadGame([out, retval] VARIANT_BOOL *pVal);
  910. [propput, helpstring("property SquadGame")] HRESULT SquadGame([in] VARIANT_BOOL newVal);
  911. [propget, helpstring("property AllowFriendlyFire")] HRESULT AllowFriendlyFire([out, retval] VARIANT_BOOL *pVal);
  912. [propput, helpstring("property AllowFriendlyFire")] HRESULT AllowFriendlyFire([in] VARIANT_BOOL newVal);
  913. [propget, helpstring("property IGCcoreVersion")] HRESULT IGCcoreVersion([out, retval] long *pVal);
  914. [propget, helpstring("property GameLength")] HRESULT GameLength([out, retval] float *pVal);
  915. [propput, helpstring("property GameLength")] HRESULT GameLength([in] float newVal);
  916. [propget, helpstring("property He3Density")] HRESULT He3Density([out, retval] float *pVal);
  917. [propput, helpstring("property He3Density")] HRESULT He3Density([in] float newVal);
  918. [propget, helpstring("property KillPenalty")] HRESULT KillPenalty([out, retval] AGCMoney *pVal);
  919. [propput, helpstring("property KillPenalty")] HRESULT KillPenalty([in] AGCMoney newVal);
  920. [propget, helpstring("property KillReward")] HRESULT KillReward([out, retval] AGCMoney *pVal);
  921. [propput, helpstring("property KillReward")] HRESULT KillReward([in] AGCMoney newVal);
  922. [propget, helpstring("property EjectPenalty")] HRESULT EjectPenalty([out, retval] AGCMoney *pVal);
  923. [propput, helpstring("property EjectPenalty")] HRESULT EjectPenalty([in] AGCMoney newVal);
  924. [propget, helpstring("property EjectReward")] HRESULT EjectReward([out, retval] AGCMoney *pVal);
  925. [propput, helpstring("property EjectReward")] HRESULT EjectReward([in] AGCMoney newVal);
  926. [propget, helpstring("property TimeStart")] HRESULT TimeStart([out, retval] double *pVal);
  927. [propget, helpstring("property TimeStartClock")] HRESULT TimeStartClock([out, retval] long *pVal);
  928. [propget, helpstring("property GoalArtifactsCount")] HRESULT GoalArtifactsCount([out, retval] short *pVal);
  929. [propput, helpstring("property GoalArtifactsCount")] HRESULT GoalArtifactsCount([in] short newVal);
  930. [propget, helpstring("property AutoRestart")] HRESULT AutoRestart([out, retval] VARIANT_BOOL *pVal);
  931. [propput, helpstring("property AutoRestart")] HRESULT AutoRestart([in] VARIANT_BOOL newVal);
  932. [propget, helpstring("property DefaultCountdown (in seconds)")] HRESULT DefaultCountdown([out, retval] float *pVal);
  933. [propput, helpstring("property DefaultCountdown (in seconds)")] HRESULT DefaultCountdown([in] float newVal);
  934. [propget, helpstring("property InitialMinersPerTeam")] HRESULT InitialMinersPerTeam([out, retval] BYTE *pVal);
  935. [propput, helpstring("property InitialMinersPerTeam")] HRESULT InitialMinersPerTeam([in] BYTE newVal);
  936. [propget, helpstring("property MaxMinersPerTeam")] HRESULT MaxMinersPerTeam([out, retval] BYTE *pVal);
  937. [propput, helpstring("property MaxMinersPerTeam")] HRESULT MaxMinersPerTeam([in] BYTE newVal);
  938. [propget, helpstring("property CustomMap")] HRESULT CustomMap([out, retval] BSTR *pVal);
  939. [propput, helpstring("property CustomMap")] HRESULT CustomMap([in] BSTR newVal);
  940. [propget, helpstring("property RestartCountdown (in seconds)")] HRESULT RestartCountdown([out, retval] float *pVal);
  941. [propput, helpstring("property RestartCountdown (in seconds)")] HRESULT RestartCountdown([in] float newVal);
  942. [propget, helpstring("property TotalMaxPlayers (for the entire game)")] HRESULT TotalMaxPlayers([out, retval] short* pVal);
  943. [propput, helpstring("property TotalMaxPlayers (for the entire game)")] HRESULT TotalMaxPlayers([in] short newVal);
  944. [propget, helpstring("property LockTeamSettings (locks settings for players not admins)")] HRESULT LockTeamSettings([out, retval] VARIANT_BOOL *pVal);
  945. [propput, helpstring("property LockTeamSettings (locks settings for players not admins)")] HRESULT LockTeamSettings([in] VARIANT_BOOL newVal);
  946. [propget, helpstring("property InvitationListID")] HRESULT InvitationListID([out, retval] int *pVal);
  947. [propput, helpstring("property InvitationListID")] HRESULT InvitationListID([in] int newVal);
  948. [propget, helpstring("property IsSquadGame")] HRESULT IsSquadGame([out, retval] VARIANT_BOOL *pVal);
  949. [propput, helpstring("property IsSquadGame")] HRESULT IsSquadGame([in] VARIANT_BOOL newVal);
  950. [propget, helpstring("property LockGameOpen")] HRESULT LockGameOpen([out, retval] VARIANT_BOOL *pVal);
  951. [propput, helpstring("property LockGameOpen")] HRESULT LockGameOpen([in] VARIANT_BOOL newVal);
  952. [propget, helpstring("property TeamName")] HRESULT TeamName([in] short iTeam, [out, retval] BSTR *pVal);
  953. [propput, helpstring("property TeamName")] HRESULT TeamName([in] short iTeam, [in] BSTR newVal);
  954. [propget, helpstring("property IsTechBitOverridden; returns true iff OverriddenTechBit was set for this Team's BitID")] HRESULT IsTechBitOverridden([in] short iTeam, [in] short iBitID, [out, retval] VARIANT_BOOL *pVal);
  955. [propget, helpstring("property OverriddenTechBit")] HRESULT OverriddenTechBit([in] short iTeam, [in] short iBitID, [out, retval] VARIANT_BOOL *pVal);
  956. [propput, helpstring("property OverriddenTechBit")] HRESULT OverriddenTechBit([in] short iTeam, [in] short iBitID, [in] VARIANT_BOOL newVal);
  957. [propput, helpstring("property SetOverriddenTechBitRange")] HRESULT SetOverriddenTechBitRange([in] short iTeam, [in] short iBitID_First, [in] short iBitID_Last, [in] VARIANT_BOOL newVal);
  958. [propget, helpstring("property IsGoalFlags")] HRESULT IsGoalFlags([out, retval] VARIANT_BOOL *pVal);
  959. [propput, helpstring("property IsGoalFlags")] HRESULT IsGoalFlags([in] VARIANT_BOOL newVal);
  960. [propget, helpstring("property GoalFlagsCount")] HRESULT GoalFlagsCount([out, retval] short *pVal);
  961. [propput, helpstring("property GoalFlagsCount")] HRESULT GoalFlagsCount([in] short newVal);
  962. [propget, helpstring("The text that describes the story of the game.")]
  963. HRESULT StoryText([out, retval] BSTR* pbstrStory);
  964. [propput]
  965. HRESULT StoryText([in] BSTR bstrStory);
  966. [propget, helpstring("property AllowEmptyTeams")] HRESULT AllowEmptyTeams([out, retval] VARIANT_BOOL *pVal);
  967. [propput, helpstring("property AllowEmptyTeams")] HRESULT AllowEmptyTeams([in] VARIANT_BOOL newVal);
  968. [propget, helpstring("property AutoStart")] HRESULT AutoStart([out, retval] VARIANT_BOOL *pVal);
  969. [propput, helpstring("property AutoStart")] HRESULT AutoStart([in] VARIANT_BOOL newVal);
  970. [propget, helpstring("property AllowRestart")] HRESULT AllowRestart([out, retval] VARIANT_BOOL *pVal);
  971. [propput, helpstring("property AllowRestart")] HRESULT AllowRestart([in] VARIANT_BOOL newVal);
  972. [propget, helpstring("property AllowShipyardPath")] HRESULT AllowShipyardPath([out, retval] VARIANT_BOOL *pVal);
  973. [propput, helpstring("property AllowShipyardPath")] HRESULT AllowShipyardPath([in] VARIANT_BOOL newVal);
  974. [propget, helpstring("property AllowSupremacyPath")] HRESULT AllowSupremacyPath([out, retval] VARIANT_BOOL *pVal);
  975. [propput, helpstring("property AllowSupremacyPath")] HRESULT AllowSupremacyPath([in] VARIANT_BOOL newVal);
  976. [propget, helpstring("property AllowTacticalPath")] HRESULT AllowTacticalPath([out, retval] VARIANT_BOOL *pVal);
  977. [propput, helpstring("property AllowTacticalPath")] HRESULT AllowTacticalPath([in] VARIANT_BOOL newVal);
  978. [propget, helpstring("property AllowExpansionPath")] HRESULT AllowExpansionPath([out, retval] VARIANT_BOOL *pVal);
  979. [propput, helpstring("property AllowExpansionPath")] HRESULT AllowExpansionPath([in] VARIANT_BOOL newVal);
  980. [propget, helpstring("property MaxImbalance: Maximum allowed difference between smallest and largest team.")]
  981. HRESULT MaxImbalance([out, retval] short* pVal);
  982. [propput]
  983. HRESULT MaxImbalance([in] short Val);
  984. };
  985. /////////////////////////////////////////////////////////////////////////////
  986. // IAGCCommand
  987. [
  988. object, dual, pointer_default(unique), nonextensible,
  989. uuid(7CDC82F6-FE9D-11d2-A50F-00C04F68DEB0),
  990. helpstring("Interface to an AGC Command object.")
  991. ]
  992. interface IAGCCommand : IDispatch
  993. {
  994. [propget, id(dispid_Target), helpstring("Gets the command target.")]
  995. HRESULT Target([out, retval] BSTR* pbstrTarget);
  996. [propget, id(dispid_Verb), helpstring("Gets the command verb.")]
  997. HRESULT Verb([out, retval] BSTR* pbstrVerb);
  998. [propget, id(DISPID_VALUE), helpstring("Gets the textual represenation of the command.")]
  999. HRESULT Text([out, retval] BSTR* pbstrText);
  1000. }; // End: interface IAGCCommand : IDispatch
  1001. /////////////////////////////////////////////////////////////////////////////
  1002. // IAGCCommandPrivate
  1003. [
  1004. hidden, restricted, object, local, pointer_default(unique), nonextensible,
  1005. uuid(FD8B15CA-FF40-11d2-A50F-00C04F68DEB0),
  1006. helpstring("Private interface to an AGC Command object.")
  1007. ]
  1008. interface IAGCCommandPrivate : IUnknown
  1009. {
  1010. [helpstring("Initializes the object.")]
  1011. void Init([in] LPCSTR pszTarget, [in] LPCSTR pszVerb);
  1012. }; // End: interface IAGCCommandPrivate : IDispatch
  1013. /////////////////////////////////////////////////////////////////////////////
  1014. [
  1015. object, dual, pointer_default(unique), nonextensible,
  1016. uuid(160DA17D-C8D5-4352-9654-6E658A5A0887),
  1017. helpstring("IAGCVersionInfo Interface")
  1018. ]
  1019. interface IAGCVersionInfo : IDispatch
  1020. {
  1021. #include "..\test\TCAtl\VersionInfoImpl.idl"
  1022. }; // End: interface IAGCVersionInfo : IDispatch
  1023. /////////////////////////////////////////////////////////////////////////////
  1024. [
  1025. object, dual, pointer_default(unique), nonextensible,
  1026. uuid(80E3B37A-936E-4dcc-A8AD-DD9658F20613),
  1027. helpstring("IAGCDBParams Interface")
  1028. ]
  1029. interface IAGCDBParams : IDispatch
  1030. {
  1031. [propput, helpstring("Gets/sets the database connection string.")]
  1032. HRESULT ConnectionString([in] BSTR bstr);
  1033. [propget]
  1034. HRESULT ConnectionString([out, retval] BSTR* pbstr);
  1035. [propput, helpstring("Gets/sets the table name.")]
  1036. HRESULT TableName([in] BSTR bstr);
  1037. [propget]
  1038. HRESULT TableName([out, retval] BSTR* pbstr);
  1039. }; // End: interface IAGCDBParams : IDispatch
  1040. /////////////////////////////////////////////////////////////////////////////
  1041. [
  1042. object, dual, pointer_default(unique), nonextensible,
  1043. uuid(28755AA1-6391-4d37-A995-5AE387D0B610),
  1044. helpstring("IAGCEventLogger Interface")
  1045. ]
  1046. interface IAGCEventLogger : IDispatch
  1047. {
  1048. [propget, helpstring("Gets the entire list of AGC Events as an XML string.")]
  1049. HRESULT EventList([out, retval] BSTR* pbstrEventListXML);
  1050. [propput, helpstring("Gets/sets the name of the (WinNT or Win2000) computer to which AGC Events will be logged as NT Events.")]
  1051. HRESULT NTEventLog([in] BSTR bstrComputer);
  1052. [propget]
  1053. HRESULT NTEventLog([out, retval] BSTR* pbstrComputer);
  1054. [propput, helpstring("Gets/sets the parameters of the database to which AGC Events will be logged.")]
  1055. HRESULT DBEventLog([in] IAGCDBParams* pDBParams);
  1056. [propget]
  1057. HRESULT DBEventLog([out, retval] IAGCDBParams** ppDBParams);
  1058. [propput, helpstring("Gets/sets the range(s) of AGC Events to be logged to the NT Event log.")]
  1059. HRESULT EnabledNTEvents([in] IAGCEventIDRanges* pEvents);
  1060. [propget]
  1061. HRESULT EnabledNTEvents([out, retval] IAGCEventIDRanges** ppEvents);
  1062. [propput, helpstring("Gets/sets the range(s) of AGC Events to be logged to the database event log.")]
  1063. HRESULT EnabledDBEvents([in] IAGCEventIDRanges* pEvents);
  1064. [propget]
  1065. HRESULT EnabledDBEvents([out, retval] IAGCEventIDRanges** ppEvents);
  1066. [propget, helpstring("Gets the default range(s) of AGC Events to be logged to the NT Event log.")]
  1067. HRESULT DefaultEnabledNTEvents([out, retval] IAGCEventIDRanges** ppEvents);
  1068. [propget, helpstring("Gets the default range(s) of AGC Events to be logged to the DB Event log.")]
  1069. HRESULT DefaultEnabledDBEvents([out, retval] IAGCEventIDRanges** ppEvents);
  1070. }; // End: interface IAGCEventLogger : IDispatch
  1071. /////////////////////////////////////////////////////////////////////////////
  1072. [
  1073. object, oleautomation, pointer_default(unique), nonextensible,
  1074. uuid(E3A96B17-84AD-4785-B36B-F5B022473FFB),
  1075. helpstring("Implemented by an AGC host to hook event logging.")
  1076. ]
  1077. interface IAGCEventLoggerHook : IUnknown
  1078. {
  1079. [helpstring("Called to allow the host application to log an event in its own way. Host should return S_FALSE to indicate to the event logger that it should perform 'normal' event logging.")]
  1080. HRESULT LogEvent([in] IAGCEvent* pEvent, [in] VARIANT_BOOL bSynchronous);
  1081. }; // End: interface IAGCEventLoggerHook : IUnknown
  1082. /////////////////////////////////////////////////////////////////////////////
  1083. [
  1084. object, oleautomation, pointer_default(unique), nonextensible,
  1085. uuid(264080C0-4D80-4a68-81D4-05B937E8FD3D),
  1086. helpstring("IAGCEventLoggerPrivate Interface")
  1087. ]
  1088. interface IAGCEventLoggerPrivate : IUnknown
  1089. {
  1090. [helpstring("Should be called immediately upon creating the object (and from the same thread or apartment).")]
  1091. HRESULT Initialize([in] BSTR bstrSourceApp, [in] BSTR bstrRegKey);
  1092. [helpstring("Should be called immediately prior to releasing the object.")]
  1093. HRESULT Terminate();
  1094. [propput, helpstring("Gets/sets whether or not logging to the NT Event log is enabled or not.")]
  1095. HRESULT LoggingToNTEnabled([in] VARIANT_BOOL bEnabled);
  1096. [propget]
  1097. HRESULT LoggingToNTEnabled([out, retval] VARIANT_BOOL* pbEnabled);
  1098. [propput, helpstring("Gets/sets whether or not logging to the DB Event log is enabled or not.")]
  1099. HRESULT LoggingToDBEnabled([in] VARIANT_BOOL bEnabled);
  1100. [propget]
  1101. HRESULT LoggingToDBEnabled([out, retval] VARIANT_BOOL* pbEnabled);
  1102. [propput, helpstring("Gets/sets a callback interface to hook events logged to the NT Event log.")]
  1103. HRESULT HookForNTLogging([in] IAGCEventLoggerHook* pHook);
  1104. [propget]
  1105. HRESULT HookForNTLogging([out, retval] IAGCEventLoggerHook** ppHook);
  1106. [propput, helpstring("Gets/sets a callback interface to hook events logged to the DB Event log.")]
  1107. HRESULT HookForDBLogging([in] IAGCEventLoggerHook* pHook);
  1108. [propget]
  1109. HRESULT HookForDBLogging([out, retval] IAGCEventLoggerHook** ppHook);
  1110. }; // End: interface IAGCEventLoggerPrivate : IUnknown
  1111. /////////////////////////////////////////////////////////////////////////////
  1112. // IAGCRangePrivate
  1113. [
  1114. hidden, restricted, object, local, pointer_default(unique), nonextensible,
  1115. uuid(AD411305-E114-4632-879C-EAE2E8810179),
  1116. helpstring("Private interface to an AGC Range object.")
  1117. ]
  1118. interface IAGCRangePrivate : IUnknown
  1119. {
  1120. [helpstring("Initializes the object from a raw (TCLib) range<T> pointer.")]
  1121. HRESULT InitFromRange([in] const void* pvRange);
  1122. [helpstring("Copies the object's raw (TCLib) range to the specified range<T> pointer.")]
  1123. HRESULT CopyRangeTo([in, out] void* pvRange);
  1124. }; // End: interface IAGCRangePrivate : IDispatch
  1125. /////////////////////////////////////////////////////////////////////////////
  1126. // IAGCRangesPrivate
  1127. [
  1128. hidden, restricted, object, local, pointer_default(unique), nonextensible,
  1129. uuid(BC666227-D3D2-4387-9341-05D1C9ED3D59),
  1130. helpstring("Private interface to an AGC Ranges object.")
  1131. ]
  1132. interface IAGCRangesPrivate : IUnknown
  1133. {
  1134. [helpstring("Initializes the object from a raw (TCLib) rangeset< range<T> > pointer.")]
  1135. HRESULT InitFromRanges([in] const void* pvRanges);
  1136. [helpstring("Copies the object's raw (TCLib) range to the specified rangeset< range<T> > pointer.")]
  1137. HRESULT CopyRangesTo([in, out] void* pvRanges);
  1138. }; // End: interface IAGCRangesPrivate : IDispatch
  1139. /////////////////////////////////////////////////////////////////////////////
  1140. [
  1141. object, dual, pointer_default(unique), nonextensible,
  1142. uuid(0AA7A82F-FCA5-4671-869F-0033A7573D30),
  1143. helpstring("IAGCEventIDRange Interface")
  1144. ]
  1145. interface IAGCEventIDRange : IDispatch
  1146. {
  1147. [propput, helpstring("Gets/sets the range as a string, formatted for display purposes.")]
  1148. HRESULT DisplayString([in] BSTR bstr);
  1149. [propget, id(DISPID_VALUE)]
  1150. HRESULT DisplayString([out, retval] BSTR* pbstr);
  1151. [helpstring("Sets the lower and upper (open) ends of the range.")]
  1152. HRESULT Init([in] AGCEventID lower, [in] AGCEventID upper);
  1153. [propget, helpstring("Gets the lower end of the range.")]
  1154. HRESULT Lower([out, retval] AGCEventID* pValue);
  1155. [propget, helpstring("Gets the upper (open) end of the range.")]
  1156. HRESULT Upper([out, retval] AGCEventID* pValue);
  1157. [propget, helpstring("Determines whether this range is empty (Lower equals Upper).")]
  1158. HRESULT IsEmpty([out, retval] VARIANT_BOOL* pbIsEmpty);
  1159. [propget, helpstring("Determines whether the specified value intersects with this range.")]
  1160. HRESULT IntersectsWithValue([in] AGCEventID value,
  1161. [out, retval] VARIANT_BOOL* pbIntersects);
  1162. [propget, helpstring("Determines whether the specified range intersects with this range.")]
  1163. HRESULT IntersectsWithRangeValues([in] AGCEventID value1,
  1164. [in] AGCEventID value2,
  1165. [out, retval] VARIANT_BOOL* pbIntersects);
  1166. [propget, helpstring("Determines whether the specified range intersects with this range.")]
  1167. HRESULT IntersectsWithRange([in] IAGCEventIDRange* pRange,
  1168. [out, retval] VARIANT_BOOL* pbIntersects);
  1169. }; // End: interface IAGCEventIDRange : IDispatch
  1170. /////////////////////////////////////////////////////////////////////////////
  1171. [
  1172. object, dual, pointer_default(unique), nonextensible,
  1173. uuid(481B5D73-C1C4-4936-93C6-C4754F10D497),
  1174. helpstring("IAGCEventIDRanges Interface")
  1175. ]
  1176. interface IAGCEventIDRanges : IDispatch
  1177. {
  1178. [propget, helpstring("Returns the number of items in the collection.")]
  1179. HRESULT Count([out, retval] long* pnCount);
  1180. [propget, hidden, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator object that implements IEnumVARIANT.")]
  1181. HRESULT _NewEnum([out, retval] IUnknown** ppunkEnum);
  1182. [propget, id(DISPID_VALUE), helpstring("Returns a AGCShip from the collection, or NULL if the item does not exist. Takes an argument, index, which must be the index into the collection.")]
  1183. HRESULT Item([in] VARIANT* pvIndex, [out, retval] IAGCEventIDRange** ppRange);
  1184. [propput, helpstring("Gets/sets the range set as a string, formatted for display purposes.")]
  1185. HRESULT DisplayString([in] BSTR bstr);
  1186. [propget]
  1187. HRESULT DisplayString([out, retval] BSTR* pbstr);
  1188. [helpstring("Adds a range into the set, specified by the range's lower and upper bounds.")]
  1189. HRESULT AddByValues([in] AGCEventID value1, [in] AGCEventID value2);
  1190. [helpstring("Adds a range into the set, specified by a range object.")]
  1191. HRESULT Add([in] IAGCEventIDRange* pRange);
  1192. [helpstring("Removes a range from the set, specified by the range's lower and upper bounds.")]
  1193. HRESULT RemoveByValues([in] AGCEventID value1, [in] AGCEventID value2);
  1194. [helpstring("Removes a range from the set, specified by a range object.")]
  1195. HRESULT Remove([in] IAGCEventIDRange* pRange);
  1196. [helpstring("Removes all ranges from the set, specified by a range object.")]
  1197. HRESULT RemoveAll();
  1198. [propget, helpstring("Determines whether the specified value intersects with any range in this set.")]
  1199. HRESULT IntersectsWithValue([in] AGCEventID value,
  1200. [out, retval] VARIANT_BOOL* pbIntersects);
  1201. [propget, helpstring("Determines whether the specified range intersects with any range in this set.")]
  1202. HRESULT IntersectsWithRangeValues([in] AGCEventID value1,
  1203. [in] AGCEventID value2,
  1204. [out, retval] VARIANT_BOOL* pbIntersects);
  1205. [propget, helpstring("Determines whether the specified range intersects with any range in this set.")]
  1206. HRESULT IntersectsWithRange([in] IAGCEventIDRange* pRange,
  1207. [out, retval] VARIANT_BOOL* pbIntersects);
  1208. }; // End: interface IAGCEventIDRanges : IAGCCollection
  1209. /////////////////////////////////////////////////////////////////////////////
  1210. // The ITCCollection interface serves as the base interface from which most
  1211. // collection interfaces derive.
  1212. //
  1213. // *When To Implement*
  1214. //
  1215. // Implement the methods of this interface on any collection object that has
  1216. // the same collection semantics.
  1217. //
  1218. // *When To Use*
  1219. //
  1220. // Use this interface on a collection object.
  1221. [
  1222. object, dual, pointer_default(unique), nonextensible,
  1223. uuid(B1935981-D27B-11d2-9646-00C04F68DEB0),
  1224. helpstring("Base interface for most collection interfaces.")
  1225. ]
  1226. interface ITCCollection : IDispatch
  1227. {
  1228. ///////////////////////////////////////////////////////////////////////////
  1229. // Parameters:
  1230. // pnCount - Address of a variable to receive the number of items in the
  1231. // collection.
  1232. //
  1233. // Return Value: One of the following results:
  1234. //
  1235. // S_OK - The method completed successfully.
  1236. // E_POINTER - The specified pointer is invalid.
  1237. [propget, helpstring("Returns the number of items in the collection.")]
  1238. HRESULT Count([out, retval] long* pnCount);
  1239. ///////////////////////////////////////////////////////////////////////////
  1240. // Remarks:
  1241. // This property is provided for compatibility with VB, VBA, and VBScript.
  1242. //
  1243. // Parameters:
  1244. // ppunkEnum - Address of a variable to receive an enumerator object that
  1245. // implements IEnumVARIANT.
  1246. //
  1247. // Return Value: One of the following results:
  1248. //
  1249. // S_OK - The method completed successfully.
  1250. // E_POINTER - The specified pointer is invalid.
  1251. [propget, hidden, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator object that implements IEnumVARIANT.")]
  1252. HRESULT _NewEnum([out, retval] IUnknown** ppunkEnum);
  1253. }; // End: interface ITCCollection : IDispatch
  1254. /////////////////////////////////////////////////////////////////////////////
  1255. // The ITCStrings interface exposes a collection of strings.
  1256. //
  1257. // *When To Implement*
  1258. //
  1259. // The Strings object implements this interface. Usually there is no reason
  1260. // to implement it on other objects.
  1261. //
  1262. // *When To Use*
  1263. //
  1264. // Use this interface on the Strings object to manage or query a collection
  1265. // of strings.
  1266. [
  1267. object, dual, pointer_default(unique),
  1268. uuid(C04322E0-CB3B-11d2-9646-00C04F68DEB0),
  1269. helpstring("Interface to a collection of strings.")
  1270. ]
  1271. interface ITCStrings : ITCCollection
  1272. {
  1273. ///////////////////////////////////////////////////////////////////////////
  1274. // Parameters:
  1275. // index - A pointer to a *VARIANT* of a type that can be coerced to
  1276. // *VT_I4*. Specifies the 0-relative index of the item which is to be
  1277. // retrieved.
  1278. // pbstr - Address of a variable to receive the specified string from the
  1279. // collection.
  1280. //
  1281. // Return Value: One of the following results:
  1282. //
  1283. // S_OK - The method completed successfully.
  1284. // E_POINTER - The specified pointer is invalid.
  1285. // E_INVALIDARG - The specified index is out of range.
  1286. [propget, id(DISPID_VALUE), helpstring("Returns a BSTR from the collection or NULL if the index is out of range. Takes an argument, index, which must be the index into the collection.")]
  1287. HRESULT Item([in] VARIANT* pvIndex, [out, retval] BSTR* pbstr);
  1288. ///////////////////////////////////////////////////////////////////////////
  1289. // Parameters:
  1290. // bstr - The string to be added to the end of the collection.
  1291. //
  1292. // Return Value: One of the following results:
  1293. //
  1294. // S_OK - The method completed successfully.
  1295. // E_POINTER - The specified pointer is invalid.
  1296. [helpstring("Adds the specified string to the collection.")]
  1297. HRESULT Add([in] BSTR bstr);
  1298. ///////////////////////////////////////////////////////////////////////////
  1299. // Parameters:
  1300. // index - A pointer to a *VARIANT* of a type that can be coerced to
  1301. // *VT_I4*. Specifies the 0-relative index of the item which is to be
  1302. // removed.
  1303. //
  1304. // Return Value: One of the following results:
  1305. //
  1306. // S_OK - The method completed successfully.
  1307. // E_INVALIDARG - The specified index is out of range.
  1308. [helpstring("Removes the specified string from the collection.")]
  1309. HRESULT Remove([in] VARIANT* pvIndex);
  1310. ///////////////////////////////////////////////////////////////////////////
  1311. // Return Value: One of the following results:
  1312. //
  1313. // S_OK - The method completed successfully.
  1314. [helpstring("Removes all strings from the collection.")]
  1315. HRESULT RemoveAll();
  1316. ///////////////////////////////////////////////////////////////////////////
  1317. // Parameters:
  1318. // bstrDelimiter - The delimiter string which seperates the strings of
  1319. // the /bstrStrings/ parameter.
  1320. // bstrStrings - The strings to be added to the end of the collection.
  1321. // Each string is seperated by the delimiter specified by the
  1322. // /bstrDelimiter/ parameter.
  1323. //
  1324. // Return Value: One of the following results:
  1325. //
  1326. // S_OK - The method completed successfully.
  1327. // E_POINTER - The specified pointer is invalid.
  1328. [helpstring("Adds the specified delimited strings to the collection.")]
  1329. HRESULT AddDelimited([in] BSTR bstrDelimiter, [in] BSTR bstrStrings);
  1330. ///////////////////////////////////////////////////////////////////////////
  1331. // Parameters:
  1332. // bstrDelimiter - The delimiter string which is used to seperate the
  1333. // strings returned in the /pbstrStrings/ parameter.
  1334. // pbstrStrings - Address of a variable to receive the entire array of
  1335. // strings as a single string. Each string is seperated by the delimiter
  1336. // specified by the /bstrDelimiter/ parameter.
  1337. //
  1338. // Return Value: One of the following results:
  1339. //
  1340. // S_OK - The method completed successfully.
  1341. // E_POINTER - The specified pointer is invalid.
  1342. [propget, helpstring("Returns the entire array of strings as a single string, delimited by the specified delimiter string.")]
  1343. HRESULT DelimitedItems([in] BSTR bstrDelimiter, [out, retval] BSTR* pbstrStrings);
  1344. ///////////////////////////////////////////////////////////////////////////
  1345. // Parameters:
  1346. // pStrings - Another Strings object whose strings will be copied and
  1347. // added to the end of this collection.
  1348. //
  1349. // Return Value: One of the following results:
  1350. //
  1351. // S_OK - The method completed successfully.
  1352. // E_POINTER - The specified pointer is invalid.
  1353. [helpstring("Adds the strings of the specified collection.")]
  1354. HRESULT AddStrings([in] ITCStrings* pStrings);
  1355. }; // End: interface ITCStrings : IDispatch
  1356. /////////////////////////////////////////////////////////////////////////////
  1357. // ITCPropBagOnRegKey Interface
  1358. [
  1359. object, dual, pointer_default(unique),
  1360. uuid(8962E242-CD81-11d2-9646-00C04F68DEB0),
  1361. helpstring("Interface to create a property bag on a registry key.")
  1362. ]
  1363. interface ITCPropBagOnRegKey : IDispatch
  1364. {
  1365. [helpstring("Creates or opens the specified registry key.")]
  1366. HRESULT CreateKey([in] BSTR bstrRegKey, [in] VARIANT_BOOL bReadOnly);
  1367. [helpstring("Opens the specified registry key. Fails if the key does not exist.")]
  1368. HRESULT OpenKey([in] BSTR bstrRegKey, [in] VARIANT_BOOL bReadOnly);
  1369. [helpstring("Creates the object that is stored on the current registry key.")]
  1370. HRESULT CreateObject([out, retval] IUnknown** ppunkObj);
  1371. [helpstring("Creates the object, always on the local machine, that is stored on the current registry key.")]
  1372. HRESULT CreateLocalObject([out, retval] IUnknown** ppunkObj);
  1373. [helpstring("Creates the object, on the specified server, that is stored on the current registry key.")]
  1374. HRESULT CreateRemoteObject([in] BSTR bstrServer,
  1375. [out, retval] IUnknown** ppunkObj);
  1376. [helpstring("Load the specified object from the values stored in the current registry key.")]
  1377. HRESULT LoadObject([in] IUnknown* punkObj);
  1378. [helpstring("Saves the specified object to the current registry key.")]
  1379. HRESULT SaveObject([in] IUnknown* punkObj,
  1380. [in, defaultvalue(0)] VARIANT_BOOL bClearDirty,
  1381. [in, defaultvalue(-1)] VARIANT_BOOL bSaveAllProperties,
  1382. [in, defaultvalue(-1)] VARIANT_BOOL bSaveCreationInfo);
  1383. [propput, helpstring("Gets/sets the server on which the object stored on the current registry key will be created.")]
  1384. HRESULT Server([in] BSTR bstrServer);
  1385. [propget] HRESULT Server([out, retval] BSTR* pbstrServer);
  1386. [propget, helpstring("Gets the string representation of the CLSID of the object stored on the current registry key.")]
  1387. HRESULT ObjectCLSID([out, retval] BSTR* pbstrCLSID);
  1388. }; // End: interface ITCPropBagOnRegKey : IDispatch
  1389. /////////////////////////////////////////////////////////////////////////////
  1390. // The ITCSessionInfo interface exposes information about the connection of
  1391. // a session object.
  1392. [
  1393. object, dual, pointer_default(unique),
  1394. uuid(34E485E2-C7B7-11d2-85C9-00C04F68DEB0),
  1395. helpstring("ITCSessionInfo Interface")
  1396. ]
  1397. interface ITCSessionInfo : IDispatch
  1398. {
  1399. ///////////////////////////////////////////////////////////////////////////
  1400. // Parameter:
  1401. // pbstrUserName - Address of a variable to receive the name of the user
  1402. // who created this session.
  1403. //
  1404. // Return Value: One of the following values or an RPC error code if an
  1405. // error occurred in the remoting layer:
  1406. //
  1407. // S_OK - The method completed successfully.
  1408. // E_POINTER - An invalid pointer was specified.
  1409. // E_UNEXPECTED - Something unexpected occurred, such as an empty string
  1410. // was specified.
  1411. [propget, id(dispid_UserName), helpstring("Gets the user name of this session.")]
  1412. HRESULT UserName([out, retval] BSTR* pbstrUserName);
  1413. ///////////////////////////////////////////////////////////////////////////
  1414. // Parameter:
  1415. // pbstrComputerName - Address of a variable to receive the computer name
  1416. // from which this session was created.
  1417. //
  1418. // Return Value: One of the following values or an RPC error code if an
  1419. // error occurred in the remoting layer:
  1420. //
  1421. // S_OK - The method completed successfully.
  1422. // E_POINTER - An invalid pointer was specified.
  1423. // E_UNEXPECTED - Something unexpected occurred, such as an empty string
  1424. // was specified.
  1425. [propget, id(dispid_ComputerName), helpstring("Gets the computer name of this session.")]
  1426. HRESULT ComputerName([out, retval] BSTR* pbstrComputerName);
  1427. ///////////////////////////////////////////////////////////////////////////
  1428. // Parameter:
  1429. // bstrAppName - The name of the application from which this session was
  1430. // created.
  1431. // pbstrAppName - Address of a variable to receive the name of the
  1432. // application from which this session was created.
  1433. //
  1434. // Return Value: One of the following values or an RPC error code if an
  1435. // error occurred in the remoting layer:
  1436. //
  1437. // S_OK - The method completed successfully.
  1438. // E_POINTER - An invalid pointer was specified.
  1439. // E_UNEXPECTED - Something unexpected occurred, such as an empty string
  1440. // was specified.
  1441. [propput, id(dispid_ApplicationName), helpstring("Gets/sets the application name of this session.")]
  1442. HRESULT ApplicationName([in]BSTR bstrAppName);
  1443. [propget]
  1444. HRESULT ApplicationName([out, retval] BSTR* pbstrAppName);
  1445. ///////////////////////////////////////////////////////////////////////////
  1446. // Parameter:
  1447. // pdate - Address of a variable to receive the date and time, in
  1448. // Coordinated Universal Time (UCT), that the session was created.
  1449. //
  1450. // Return Value: One of the following values or an RPC error code if an
  1451. // error occurred in the remoting layer:
  1452. //
  1453. // S_OK - The method completed successfully.
  1454. // E_POINTER - An invalid pointer was specified.
  1455. [propget, id(dispid_TimeCreated), helpstring("Returns the time the session was created.")]
  1456. HRESULT TimeCreated([out, retval] DATE* pdate);
  1457. ///////////////////////////////////////////////////////////////////////////
  1458. // Parameter:
  1459. // pdate - Address of a variable to receive the duration of the session,
  1460. // which is time it was created subtracted from the current time.
  1461. //
  1462. // Return Value: One of the following values or an RPC error code if an
  1463. // error occurred in the remoting layer:
  1464. //
  1465. // S_OK - The method completed successfully.
  1466. // E_POINTER - An invalid pointer was specified.
  1467. [propget, id(dispid_Duration), helpstring("Returns the duration of the session.")]
  1468. HRESULT Duration([out, retval] DATE* pdate);
  1469. ///////////////////////////////////////////////////////////////////////////
  1470. // Parameter:
  1471. // pCookie - Address of a variable to receive an opaque value used to
  1472. // uniquely identify this session within a process.
  1473. //
  1474. // Return Value: One of the following values or an RPC error code if an
  1475. // error occurred in the remoting layer:
  1476. //
  1477. // S_OK - The method completed successfully.
  1478. // E_POINTER - An invalid pointer was specified.
  1479. [propget, id(dispid_Cookie), helpstring("Uniquely identifies this session within a process.")]
  1480. HRESULT Cookie([out, retval] long* pCookie);
  1481. }; // End: interface ITCSessionInfo : IDispatch
  1482. /////////////////////////////////////////////////////////////////////////////
  1483. // The ITCSessionInfos interface is used to enumerate a collection of
  1484. // Session Information Objects.
  1485. //
  1486. // Through this interface, the collection can be enumerated using the Count
  1487. // and Item properties. The Item property can be used to retrieve an item by
  1488. // its 1-based index.
  1489. //
  1490. // *When To Implement*
  1491. //
  1492. // Implement this object on a collection of session objects.
  1493. //
  1494. // *When To Use*
  1495. //
  1496. // Use ITCSessionInfos to enumerate a collection object provided by a
  1497. // session object. This allows a client to determine what other clients, if
  1498. // any, are also connected to the host of the session object.
  1499. //
  1500. // See Also: ITCSessionInfo
  1501. [
  1502. object, dual, pointer_default(unique),
  1503. uuid(45038C6E-C7B7-11d2-85C9-00C04F68DEB0),
  1504. helpstring("ITCSessionInfos interface")
  1505. ]
  1506. interface ITCSessionInfos : ITCCollection
  1507. {
  1508. ///////////////////////////////////////////////////////////////////////////
  1509. // Parameters:
  1510. // index - A *VARIANT* which is coerced to type *VT_I4*. Specifies the
  1511. // 0-relative index of the item which is to be retrieved.
  1512. // ppDriver - Address of an ITCSessionIdentity interface pointer that
  1513. // receives the item specified by /index/.
  1514. //
  1515. // Return Value: One of the following values or an RPC error code if an
  1516. // error occurred in the remoting layer:
  1517. //
  1518. // S_OK - The function was successful.
  1519. // E_POINTER - The specified pointer is invalid.
  1520. // E_INVALIDARG - The specified index is out of range or is a
  1521. // *VARIANT* type not supported by this interface.
  1522. //
  1523. // See Also: ITCSessionInfo
  1524. [propget, id(DISPID_VALUE), helpstring("Returns a Session from the collection, or NULL if the session does not exist. Takes an argument, index, which must be the index into the collection.")]
  1525. HRESULT Item([in] VARIANT index, [out, retval] ITCSessionInfo** ppSessionInfo);
  1526. }; // END: interface ITCSessionInfos : IAGCCollection
  1527. /////////////////////////////////////////////////////////////////////////////
  1528. // ITCCollectionPersistHelper Interface
  1529. [
  1530. object, dual, pointer_default(unique),
  1531. uuid(8962E24A-CD81-11d2-9646-00C04F68DEB0),
  1532. helpstring("ITCCollectionPersistHelper interface")
  1533. ]
  1534. interface ITCCollectionPersistHelper : IDispatch
  1535. {
  1536. [propput, helpstring("Gets/sets the current thread priority.")]
  1537. HRESULT Collection1([in] VARIANT* pvarSafeArray);
  1538. [propget, id(dispid_Collection1)]
  1539. HRESULT Collection1([out, retval] VARIANT* pvarSafeArray);
  1540. }; // END: interface ITCCollectionPersistHelper : IDispatch
  1541. /////////////////////////////////////////////////////////////////////////////
  1542. // ITCUtility Interface
  1543. [
  1544. object, dual, pointer_default(unique),
  1545. uuid(ADD577E2-ED3A-11d2-A50B-00C04F68DEB0),
  1546. helpstring("ITCUtility interface")
  1547. ]
  1548. interface ITCUtility : IDispatch
  1549. {
  1550. [helpstring("Creates the specified object on the specified computer.")]
  1551. HRESULT CreateObject([in] BSTR bstrProgID,
  1552. [in, defaultvalue("")] BSTR bstrComputer, [out, retval] IUnknown** ppUnk);
  1553. [helpstring("Create an object reference string.")]
  1554. HRESULT ObjectReference([in] IUnknown* pUnk,
  1555. [out, retval] BSTR* pbstrObjectReference);
  1556. [helpstring("Sleeps for the specified number of milliseconds.")]
  1557. HRESULT Sleep([in] long nDurationMS);
  1558. [helpstring("Creates an object by binding the specified moniker display name.")]
  1559. HRESULT GetObject([in] BSTR bstrMoniker,
  1560. [in, defaultvalue(-1)] VARIANT_BOOL bAllowUI,
  1561. [in, defaultvalue(-1)] long nTimeoutMS,
  1562. [out, retval] IUnknown** ppUnk);
  1563. }; // END: interface ITCUtility : IDispatch
  1564. /////////////////////////////////////////////////////////////////////////////
  1565. // IAdminSessionHelper Interface
  1566. [
  1567. object, dual, pointer_default(unique),
  1568. uuid(143C0682-8688-421b-A269-9FD40F2AA19A),
  1569. helpstring("IAdminSessionHelper interface")
  1570. ]
  1571. interface IAdminSessionHelper : IDispatch
  1572. {
  1573. [propget, helpstring("Indicates whether or not the Allegiance Game Server is currently running.")]
  1574. HRESULT IsAllSrvRunning([out, retval] VARIANT_BOOL* pbIsRunning);
  1575. }; // END: interface IAdminSessionHelper : IDispatch
  1576. /////////////////////////////////////////////////////////////////////////////
  1577. // IAGCPrivate
  1578. [
  1579. local, hidden, restricted, object, pointer_default(unique), nonextensible,
  1580. uuid(4E001CF9-0D87-11d3-8B59-00C04F681633),
  1581. helpstring("Internally-used interface on an AGC object.")
  1582. ]
  1583. interface IAGCPrivate : IUnknown
  1584. {
  1585. [helpstring("Get IGC Object Ptr.")]
  1586. void* GetIGCVoid();
  1587. }; // End: interface IAGCGamePrivate
  1588. /////////////////////////////////////////////////////////////////////////////
  1589. // IAGCCommon
  1590. [
  1591. object, dual, pointer_default(unique), nonextensible,
  1592. uuid(6EB476CE-17BC-11d3-8B61-00C04F681633),
  1593. helpstring("IAGCCommon Interface")
  1594. ]
  1595. interface IAGCCommon : IDispatch
  1596. {
  1597. // [propget, id(dispid_UniqueID), helpstring("Every object in AGC has a unique id number and this is it.")]
  1598. // HRESULT UniqueID([out, retval] AGCUniqueID* pUniqueID);
  1599. [propget, id(dispid_Type), helpstring("Gets the implementation type ('agc', 'pig', 'admin').")]
  1600. HRESULT Type([out, retval] BSTR* pbstrType);
  1601. }
  1602. /////////////////////////////////////////////////////////////////////////////
  1603. // The IAGCCollection interface serves as the base interface from which most
  1604. // collection interfaces derive.
  1605. //
  1606. // *When To Implement*
  1607. //
  1608. // Implement the methods of this interface on any collection object that has
  1609. // the same collection semantics.
  1610. //
  1611. // *When To Use*
  1612. //
  1613. // Use this interface on a collection object.
  1614. [
  1615. object, dual, pointer_default(unique), nonextensible,
  1616. uuid(B8DB7D42-1E9C-11d3-8B63-00C04F681633),
  1617. helpstring("Base interface for AGC collection interfaces.")
  1618. ]
  1619. interface IAGCCollection : IAGCCommon
  1620. {
  1621. ///////////////////////////////////////////////////////////////////////////
  1622. // Parameters:
  1623. // pnCount - Address of a variable to receive the number of items in the
  1624. // collection.
  1625. //
  1626. // Return Value: One of the following results:
  1627. //
  1628. // S_OK - The method completed successfully.
  1629. // E_POINTER - The specified pointer is invalid.
  1630. [propget, helpstring("Returns the number of items in the collection.")]
  1631. HRESULT Count([out, retval] long* pnCount);
  1632. ///////////////////////////////////////////////////////////////////////////
  1633. // Remarks:
  1634. // This property is provided for compatibility with VB, VBA, and VBScript.
  1635. //
  1636. // Parameters:
  1637. // ppunkEnum - Address of a variable to receive an enumerator object that
  1638. // implements IEnumVARIANT.
  1639. //
  1640. // Return Value: One of the following results:
  1641. //
  1642. // S_OK - The method completed successfully.
  1643. // E_POINTER - The specified pointer is invalid.
  1644. [propget, hidden, restricted, id(DISPID_NEWENUM), helpstring("Returns an enumerator object that implements IEnumVARIANT.")]
  1645. HRESULT _NewEnum([out, retval] IUnknown** ppunkEnum);
  1646. }; // End: interface IAGCCollection
  1647. /////////////////////////////////////////////////////////////////////////////
  1648. [
  1649. object, dual, pointer_default(unique), nonextensible,
  1650. uuid(6967EA73-0A42-11D3-8B58-00C04F681633),
  1651. helpstring("IAGCBase Interface")
  1652. ]
  1653. interface IAGCBase : IAGCCommon
  1654. {
  1655. // FIX [propget, id(), helpstring("")]
  1656. // HRESULT Name([out, retval] BSTR* pbstrName);
  1657. [propget, id(dispid_ObjectType), helpstring("This returns the type id of the object")]
  1658. HRESULT ObjectType([out, retval] AGCObjectType* pObjectType);
  1659. [propget, id(dispid_ObjectID), helpstring("This returns the id of the object in terms of its type; use UniqueID() for a completely unique id.")]
  1660. HRESULT ObjectID([out, retval] AGCObjectID* pObjectID);
  1661. [propget, id(dispid_GetMission), helpstring("Returns the AGC game in which this object lives.")]
  1662. HRESULT Game([out, retval] IAGCGame** ppGame);
  1663. [propget, id(dispid_BaseUniqueID), helpstring("Every object in AGC that has a base also has a unique id number and this is it.")]
  1664. HRESULT UniqueID([out, retval] AGCUniqueID* pUniqueID);
  1665. };
  1666. /////////////////////////////////////////////////////////////////////////////
  1667. [
  1668. object, dual, pointer_default(unique), nonextensible,
  1669. uuid(D64CB547-0A42-11D3-8B58-00C04F681633),
  1670. helpstring("IAGCModel Interface")
  1671. ]
  1672. interface IAGCModel : IAGCBase
  1673. {
  1674. [propget, id(dispid_IsVisible), helpstring("")]
  1675. HRESULT IsVisible([out, retval] VARIANT_BOOL* pbVisible);
  1676. [propget, id(dispid_IsSeenBySide), helpstring("")]
  1677. HRESULT IsSeenBySide([in] IAGCTeam* pTeam, [out, retval] VARIANT_BOOL* pbSeen);
  1678. [propget, id(dispid_Position), helpstring("")]
  1679. HRESULT Position([out, retval] IAGCVector** ppVector);
  1680. [propget, id(dispid_Velocity), helpstring("")]
  1681. HRESULT Velocity([out, retval] IAGCVector** ppVector);
  1682. [propget, id(dispid_Orientation), helpstring("")]
  1683. HRESULT Orientation([out, retval] IAGCOrientation** ppOrientation);
  1684. //
  1685. // TODO: implement this once Rotation is in:
  1686. //
  1687. // [propget, id(dispid_Rotation), helpstring("")]
  1688. // HRESULT Rotation([out, retval] IAGCRotation** ppRotation);
  1689. [propget, id(dispid_Radius), helpstring("")]
  1690. HRESULT Radius([out, retval] float* pfRadius);
  1691. [propget, id(dispid_Team), helpstring("")]
  1692. HRESULT Team([out, retval] IAGCTeam** ppTeam);
  1693. [propget, id(dispid_Mass), helpstring("")]
  1694. HRESULT Mass([out, retval] float* pfMass);
  1695. [propget, id(dispid_Sector), helpstring("")]
  1696. HRESULT Sector([out, retval] IAGCSector** ppSector);
  1697. [propget, id(dispid_Signature), helpstring("")]
  1698. HRESULT Signature([out, retval] float* pfSignature);
  1699. [propget, id(DISPID_VALUE), helpstring("Gets the model's name")]
  1700. HRESULT Name([out, retval] BSTR* pbstr);
  1701. /*
  1702. JOHN: these prototypes were in the initial idl draft you gave me, but I couldn't find
  1703. an IGC counterpart for them.
  1704. -Mark 2 of 3
  1705. [propget, id(dispid_IsSelectable), helpstring("User can never pick the object")]
  1706. HRESULT IsSelectable([out, retval] VARIANT_BOOL* pbSelectable);
  1707. [propget, id(dispid_IsScanner), helpstring("Can see other objects")]
  1708. HRESULT IsScanner([out, retval] VARIANT_BOOL* pbScanner);
  1709. [propget, id(dispid_IsPredictable), helpstring("Send this object to a team when it is seen for the 1st time")]
  1710. HRESULT IsPredictable([out, retval] VARIANT_BOOL* pbPredictable);
  1711. [propget, id(dispid_IsScanRequired), helpstring("Need to track its visibility with regard to side")]
  1712. HRESULT IsScanRequired([out, retval] VARIANT_BOOL* pbScanRequired);
  1713. [propget, id(dispid_IsStatic), helpstring("Can not move")]
  1714. HRESULT IsStatic([out, retval] VARIANT_BOOL* pbStatic);
  1715. [propget, id(dispid_IsDamagable), helpstring("Can take damage")]
  1716. HRESULT IsDamagable([out, retval] VARIANT_BOOL* pbDamagable);
  1717. [propget, id(dispid_IsHitable), helpstring("Goes into the collision KD tree")]
  1718. HRESULT IsHitable([out, retval] VARIANT_BOOL* pbHitable);
  1719. */
  1720. };
  1721. /////////////////////////////////////////////////////////////////////////////
  1722. [
  1723. object, dual, pointer_default(unique), nonextensible,
  1724. uuid(9F04169B-FB9F-48c2-891B-DFC9B29E0493),
  1725. helpstring("IAGCModels Interface")
  1726. ]
  1727. interface IAGCModels : IAGCCollection
  1728. {
  1729. [propget, id(DISPID_VALUE), helpstring("Returns an AGCModel from the collection, or NULL if the item does not exist. Takes an argument, index, which must be the index into the collection.")]
  1730. HRESULT Item([in] VARIANT* pvIndex, [out, retval] IAGCModel** ppItemInterface);
  1731. };
  1732. /////////////////////////////////////////////////////////////////////////////
  1733. [
  1734. object, dual, nonextensible, pointer_default(unique),
  1735. uuid(5D48F7CC-1FA8-11d3-AF03-0000F810C3F4),
  1736. helpstring("Properties of an object that is buyable.")
  1737. ]
  1738. interface IAGCBuyable : IAGCBase
  1739. {
  1740. [propget, id(DISPID_VALUE), helpstring("Gets the name of the object.")]
  1741. HRESULT Name([out, retval] BSTR* pbstrName);
  1742. [propget, id(dispid_Description), helpstring("Gets the description of the object.")]
  1743. HRESULT Description([out, retval] BSTR* pbstrDescription);
  1744. [propget, id(dispid_ModelName), helpstring("Gets the name of the model that buying this creates.")]
  1745. HRESULT ModelName([out, retval] BSTR* pbstrModelName);
  1746. [propget, id(dispid_Price), helpstring("Gets price of the object.")]
  1747. HRESULT Price([out, retval] AGCMoney* pmoneyPrice);
  1748. [propget, id(dispid_TimeToBuild), helpstring("Gets time to build the object.")]
  1749. HRESULT TimeToBuild([out, retval] long* pnTimeToBuild);
  1750. /* TODO: Implement these once we have an encapsulation for TechTreeBits
  1751. virtual const TechTreeBitMask& GetRequiredTechs(void) const = 0;
  1752. virtual const TechTreeBitMask& GetEffectTechs(void) const = 0;
  1753. */
  1754. }; // End: interface IAGCBuyable : IAGCBase
  1755. /////////////////////////////////////////////////////////////////////////////
  1756. [
  1757. object, dual, pointer_default(unique), nonextensible,
  1758. uuid(3C579426-2ED8-11d3-A51C-00C04F68DEB0),
  1759. helpstring("Interface to an AGC Hull Type object.")
  1760. ]
  1761. interface IAGCHullType : IAGCBuyable
  1762. {
  1763. [propget, id(dispid_Length), helpstring("Gets the Length.")]
  1764. HRESULT Length([out, retval] float* pfLength);
  1765. [propget, id(dispid_MaxSpeed), helpstring("Gets the MaxSpeed.")]
  1766. HRESULT MaxSpeed([out, retval] float* pfMaxSpeed);
  1767. [propget, id(dispid_MaxTurnRate), helpstring("Gets the MaxTurnRate.")]
  1768. HRESULT MaxTurnRate([in] AGCAxis eAxis, [out, retval] float* pfMaxTurnRate);
  1769. [propget, id(dispid_TurnTorque), helpstring("Gets the TurnTorque.")]
  1770. HRESULT TurnTorque([in] AGCAxis eAxis, [out, retval] float* pfTurnTorque);
  1771. [propget, id(dispid_Thrust), helpstring("Gets the Thrust.")]
  1772. HRESULT Thrust([out, retval] float* pfThrust);
  1773. [propget, id(dispid_SideMultiplier), helpstring("Gets the SideMultiplier.")]
  1774. HRESULT SideMultiplier([out, retval] float* pfSideMultiplier);
  1775. [propget, id(dispid_BackMultiplier), helpstring("Gets the BackMultiplier.")]
  1776. HRESULT BackMultiplier([out, retval] float* pfBackMultiplier);
  1777. [propget, id(dispid_ScannerRange), helpstring("Gets the ScannerRange.")]
  1778. HRESULT ScannerRange([out, retval] float* pfScannerRange);
  1779. [propget, id(dispid_MaxEnergy), helpstring("Gets the MaxEnergy.")]
  1780. HRESULT MaxEnergy([out, retval] float* pfMaxEnergy);
  1781. [propget, id(dispid_RechargeRate), helpstring("Gets the RechargeRate.")]
  1782. HRESULT RechargeRate([out, retval] float* pfRechargeRate);
  1783. [propget, id(dispid_HitPoints), helpstring("Gets the HitPoints.")]
  1784. HRESULT HitPoints([out, retval] AGCHitPoints* pHitPoints);
  1785. [propget, id(dispid_PartMask), helpstring("Gets the PartMask.")]
  1786. HRESULT PartMask([in] AGCEquipmentType et, [in] AGCMount mountID,
  1787. [out, retval] AGCPartMask* pPartMask);
  1788. [propget, id(dispid_MaxWeapons), helpstring("Gets the MaxWeapons.")]
  1789. HRESULT MaxWeapons([out, retval] AGCMount* pMaxWeapons);
  1790. [propget, id(dispid_MaxFixedWeapons), helpstring("Gets the MaxFixedWeapons.")]
  1791. HRESULT MaxFixedWeapons([out, retval] AGCMount* pMaxFixedWeapons);
  1792. // [propget, id(dispid_CanMount), helpstring("Gets the CanMount.")]
  1793. // HRESULT CanMount([in] IAGCPartType* pPartType, [in] AGCMount mountID,
  1794. // [out, retval] VARIANT_BOOL* pbCanMount);
  1795. [propget, id(dispid_Mass), helpstring("Gets the Mass.")]
  1796. HRESULT Mass([out, retval] float* pfMass);
  1797. [propget, id(dispid_Signature), helpstring("Gets the Signature.")]
  1798. HRESULT Signature([out, retval] float* pfSignature);
  1799. [propget, id(dispid_Capabilities), helpstring("Gets the Capabilities.")]
  1800. HRESULT Capabilities([out, retval] AGCHullAbilityBitMask* phabmCapabilities);
  1801. [propget, id(dispid_HasCapability), helpstring("Determines if the object has the specified capabilities..")]
  1802. HRESULT HasCapability([in] AGCHullAbilityBitMask habm,
  1803. [out, retval] VARIANT_BOOL* pbHasCapability);
  1804. [propget, id(dispid_MaxAmmo), helpstring("Gets the MaxAmmo.")]
  1805. HRESULT MaxAmmo([out, retval] short* pnMaxAmmo);
  1806. [propget, id(dispid_MaxFuel), helpstring("Gets the MaxFuel.")]
  1807. HRESULT MaxFuel([out, retval] float* pfMaxFuel);
  1808. }; // End: interface IAGCHullType : IAGCBuyable
  1809. /////////////////////////////////////////////////////////////////////////////
  1810. [
  1811. object, dual, pointer_default(unique), nonextensible,
  1812. uuid(3AFF440E-0E49-11d3-8B59-00C04F681633)
  1813. ]
  1814. interface IAGCTreasure : IAGCModel
  1815. {
  1816. [propget, id(dispid_Type), helpstring("")]
  1817. HRESULT Type([out, retval] AGCTreasureType* peType);
  1818. [propget, id(dispid_Amount), helpstring("")]
  1819. HRESULT Amount([out, retval] short* pnAmount);
  1820. // FIX: implment once IAGCBuyable exists [propget, id(dispid_Buyable), helpstring("Gets the buyable object that this treasure represents.")]
  1821. // HRESULT Buyable([out, retval] IAGCBuyable** ppBuyable);
  1822. }; // interface IAGCTreasure : IAGCModel
  1823. /////////////////////////////////////////////////////////////////////////////
  1824. [
  1825. object, dual, pointer_default(unique), nonextensible,
  1826. uuid(DA3A2550-3997-11d3-A51D-00C04F68DEB0),
  1827. helpstring("IAGCTreasures Interface")
  1828. ]
  1829. interface IAGCTreasures : IAGCCollection
  1830. {
  1831. [propget, id(DISPID_VALUE), helpstring("Returns an AGCTreasure from the collection, or NULL if the game does not exist. Takes an argument, index, which must be the index into the collection.")]
  1832. HRESULT Item([in] VARIANT* pvIndex, [out, retval] IAGCTreasure** ppItemInterface);
  1833. }; // End: interface IAGCTreasures : IAGCCollection
  1834. /////////////////////////////////////////////////////////////////////////////
  1835. [
  1836. object, dual, pointer_default(unique), nonextensible,
  1837. uuid(DF2F4B4E-0A42-11D3-8B58-00C04F681633),
  1838. helpstring("IAGCDamage Interface")
  1839. ]
  1840. interface IAGCDamage : IAGCModel
  1841. {
  1842. [propget, id(dispid_Fraction), helpstring("")]
  1843. HRESULT Fraction([out, retval] float* pfFraction);
  1844. };
  1845. /////////////////////////////////////////////////////////////////////////////
  1846. [
  1847. object, dual, pointer_default(unique), nonextensible,
  1848. uuid(E9004E70-0A42-11D3-8B58-00C04F681633),
  1849. helpstring("IAGCScanner Interface")
  1850. ]
  1851. interface IAGCScanner : IAGCDamage
  1852. {
  1853. [propget, id(dispid_InScannerRange), helpstring("")]
  1854. HRESULT InScannerRange([in] IAGCModel* pModel,
  1855. [out, retval] VARIANT_BOOL* pbInScannerRange);
  1856. [propget, id(dispid_CanSee), helpstring("")]
  1857. HRESULT CanSee([in] IAGCModel* pModel,
  1858. [out, retval] VARIANT_BOOL* pbCanSee);
  1859. };
  1860. /////////////////////////////////////////////////////////////////////////////
  1861. [
  1862. object, dual, pointer_default(unique), nonextensible,
  1863. uuid(2A91FB76-71BA-4f1a-B1E8-A457A592854D),
  1864. helpstring("IAGCProbe Interface")
  1865. ]
  1866. interface IAGCProbe : IAGCScanner
  1867. {
  1868. // Implement when IAGCProjectileType is implemented
  1869. // [propget, id(dispid_ProjectileType), helpstring("Gets the type of projectiles fired, if any.")]
  1870. // HRESULT ProjectileType([out, retval] IAGCProjectileType** ppType);
  1871. [propget, id(dispid_EmissionPoint), helpstring("Gets the point of weapon fire emission.")]
  1872. HRESULT EmissionPoint([out, retval] IAGCVector** ppEmissionPoint);
  1873. [propget, id(dispid_Lifespan), helpstring("Gets the lifespan.")]
  1874. HRESULT Lifespan([out, retval] float* pfLifespan);
  1875. [propget, id(dispid_DtBurst), helpstring("Gets the weapon burst rate(?).")]
  1876. HRESULT DtBurst([out, retval] float* pfDtBurst);
  1877. [propget, id(dispid_Accuracy), helpstring("Gets the weapon firing accuracy.")]
  1878. HRESULT Accuracy([out, retval] float* pfAccuracy);
  1879. [propget, id(dispid_IsRipcord), helpstring("Gets the indicator of the probe being a ripcord destination.")]
  1880. HRESULT IsRipcord([out, retval] VARIANT_BOOL* pbIsRipcord);
  1881. };
  1882. /////////////////////////////////////////////////////////////////////////////
  1883. [
  1884. object, dual, pointer_default(unique), nonextensible,
  1885. uuid(8A003DBD-93E8-4922-AC4B-7AF44291A89D),
  1886. helpstring("IAGCProbes Interface")
  1887. ]
  1888. interface IAGCProbes : IAGCCollection
  1889. {
  1890. [propget, id(DISPID_VALUE), helpstring("Returns an AGCProbe from the collection, or NULL if the item does not exist. Takes an argument, index, which must be the index into the collection.")]
  1891. HRESULT Item([in] VARIANT* pvIndex, [out, retval] IAGCProbe** ppItemInterface);
  1892. };
  1893. /////////////////////////////////////////////////////////////////////////////
  1894. [
  1895. object, dual, pointer_default(unique), nonextensible,
  1896. uuid(E6D48FB7-0A41-11D3-8B58-00C04F681633),
  1897. helpstring("IAGCGame Interface")
  1898. ]
  1899. interface IAGCGame : IAGCCommon
  1900. {
  1901. [propget, id(DISPID_VALUE), helpstring("Gets the game's name")]
  1902. HRESULT Name([out, retval] BSTR* pbstr);
  1903. [propget, id(dispid_Sectors), helpstring("Gets the collection of sectors in the game.")]
  1904. HRESULT Sectors([out, retval] IAGCSectors** ppAGCSectors);
  1905. [propget, id(dispid_Teams), helpstring("Gets the collection of teams in the game.")]
  1906. HRESULT Teams([out, retval] IAGCTeams** ppAGCTeams);
  1907. [propget, id(dispid_LookupShip), helpstring("Gets the Ship associated with specified AGC ID.")]
  1908. HRESULT LookupShip([in] AGCUniqueID idAGC, [out, retval] IAGCShip** ppAGCObject);
  1909. [propget, id(dispid_Ships), helpstring("Gets the collection of the ships in the game.")]
  1910. HRESULT Ships([out, retval] IAGCShips** ppShips);
  1911. [propget, id(dispid_Alephs), helpstring("Gets the collection of alephs in the game.")]
  1912. HRESULT Alephs([out, retval] IAGCAlephs** ppAlephs);
  1913. [propget, id(dispid_Asteroids), helpstring("Gets the collection of asteroids in the game.")]
  1914. HRESULT Asteroids([out, retval] IAGCAsteroids** ppAsteroids);
  1915. [propget, id(dispid_GameParameters), helpstring("Gets the parameters used to create the game.")]
  1916. HRESULT GameParameters([out, retval] IAGCGameParameters** ppParams);
  1917. [propget, id(dispid_GameID), helpstring("Gets unique mission id.")]
  1918. HRESULT GameID([out, retval] AGCGameID* pMissionId);
  1919. [propget, id(dispid_LookupTeam), helpstring("Gets the team associated with specified AGC ID.")]
  1920. HRESULT LookupTeam([in] AGCObjectID idAGC, [out, retval] IAGCTeam** ppAGCObject);
  1921. [helpstring("Sends the specified chat text to everyone in the Game.")]
  1922. HRESULT SendChat([in] BSTR bstrText, [in, defaultvalue(-1)] AGCSoundID idSound);
  1923. [helpstring("Sends the specified command to everyone in the Game.")]
  1924. HRESULT SendCommand([in] BSTR bstrCommand, [in] IAGCModel* pModelTarget,
  1925. [in, defaultvalue(-1)] AGCSoundID idSound);
  1926. [propget, id(dispid_GameStage), helpstring("Gets the stage of the game.")]
  1927. HRESULT GameStage([out, retval] AGCGameStage* pStage);
  1928. [propget, id(dispid_Probes), helpstring("Gets the collection of probes in the game.")]
  1929. HRESULT Probes([out, retval] IAGCProbes** ppProbes);
  1930. [propget, id(dispid_Buoys), helpstring("Gets the collection of buoys in the game.")]
  1931. HRESULT Buoys([out, retval] IAGCModels** ppBuoys);
  1932. [propget, id(dispid_Treasures), helpstring("Gets the collection of treasures in the game.")]
  1933. HRESULT Treasures([out, retval] IAGCModels** ppTreasures);
  1934. [propget, id(dispid_Mines), helpstring("Gets the collection of mines in the game.")]
  1935. HRESULT Mines([out, retval] IAGCModels** ppMines);
  1936. [propget, id(dispid_ReplayCount), helpstring("Gets the number of times this game has been 'reused'.")]
  1937. HRESULT ReplayCount([out, retval] short* pnReplays);
  1938. [propget, id(dispid_ContextName), helpstring("Gets a string that uniquely identifies the game context, within the game server.")]
  1939. HRESULT ContextName([out, retval] BSTR* pbstrContextName);
  1940. }; // End: interface IAGCGame : IAGCCommon
  1941. /////////////////////////////////////////////////////////////////////////////
  1942. [
  1943. object, dual, pointer_default(unique), nonextensible,
  1944. uuid(4F860D30-0A42-11D3-8B58-00C04F681633),
  1945. helpstring("IAGCShip Interface")
  1946. ]
  1947. interface IAGCShip : IAGCScanner
  1948. {
  1949. [propput, helpstring("Amount of ammo the ship has.")]
  1950. HRESULT Ammo([in] short Val);
  1951. [propget, id(dispid_Ammo)]
  1952. HRESULT Ammo([out, retval] short* pVal);
  1953. [propput, helpstring("Amount of fuel the ship has.")]
  1954. HRESULT Fuel([in] float Val);
  1955. [propget, id(dispid_Fuel)]
  1956. HRESULT Fuel([out, retval] float* pVal);
  1957. [propput, helpstring("Amount of energy the ship has.")]
  1958. HRESULT Energy([in] float Val);
  1959. [propget, id(dispid_Energy)]
  1960. HRESULT Energy([out, retval] float* pVal);
  1961. [propput, helpstring("Ship's Wing ID.")]
  1962. HRESULT WingID([in] short Val);
  1963. [propget, id(dispid_WingID)]
  1964. HRESULT WingID([out, retval] short* pVal);
  1965. [helpstring("Sends the specified chat text to the ship.")]
  1966. HRESULT SendChat([in] BSTR bstrText, [in, defaultvalue(-1)] AGCSoundID idSound);
  1967. [helpstring("Sends the specified command to the ship.")]
  1968. HRESULT SendCommand([in] BSTR bstrCommand, [in] IAGCModel* pModelTarget,
  1969. [in, defaultvalue(-1)] AGCSoundID idSound);
  1970. [propput, helpstring("Gets/sets the AutoDonate ship.")]
  1971. HRESULT AutoDonate([in] IAGCShip* pShip);
  1972. [propget, id(dispid_AutoDonate)]
  1973. HRESULT AutoDonate([out, retval] IAGCShip** ppShip);
  1974. [propput, helpstring("Gets/sets the ship's ShieldFraction")]
  1975. HRESULT ShieldFraction([in] float pVal);
  1976. [propget, id(dispid_ShieldFraction)]
  1977. HRESULT ShieldFraction([out, retval] float* pVal);
  1978. [propget, id(dispid_HullType), helpstring("Gets the ship's Hull type.")]
  1979. HRESULT HullType([out, retval] IAGCHullType** ppHullType);
  1980. [propget, id(dispid_BaseHullType), helpstring("Gets the ship's base hull type.")]
  1981. HRESULT BaseHullType([out, retval] IAGCHullType** ppHullType);
  1982. }; // End: interface IAGCShip : IAGCScanner
  1983. /////////////////////////////////////////////////////////////////////////////
  1984. [
  1985. object, dual, pointer_default(unique), nonextensible,
  1986. uuid(EDB8C96C-1EBE-11d3-8B63-00C04F681633),
  1987. helpstring("IAGCShips Interface")
  1988. ]
  1989. interface IAGCShips : IAGCCollection
  1990. {
  1991. [propget, id(DISPID_VALUE), helpstring("Returns a AGCShip from the collection, or NULL if the item does not exist. Takes an argument, index, which must be the index into the collection.")]
  1992. HRESULT Item([in] VARIANT* pvIndex, [out, retval] IAGCShip** ppItemInterface);
  1993. };
  1994. /////////////////////////////////////////////////////////////////////////////
  1995. [
  1996. object, dual, pointer_default(unique), nonextensible,
  1997. uuid(C9438C34-026A-11D3-8B55-00C04F681633),
  1998. helpstring("IAGCStation Interface")
  1999. ]
  2000. interface IAGCStation : IAGCScanner
  2001. {
  2002. [propput, helpstring("Gets/sets the station's ShieldFraction")]
  2003. HRESULT ShieldFraction([in] float pVal);
  2004. [propget, id(dispid_ShieldFraction)]
  2005. HRESULT ShieldFraction([out, retval] float* pVal);
  2006. };
  2007. /////////////////////////////////////////////////////////////////////////////
  2008. [
  2009. object, dual, pointer_default(unique), nonextensible,
  2010. uuid(6EA96980-0272-11D3-8B55-00C04F681633),
  2011. helpstring("IAGCStations Interface")
  2012. ]
  2013. interface IAGCStations : IAGCCollection
  2014. {
  2015. [propget, id(DISPID_VALUE), helpstring("Returns a AGCStation from the collection, or NULL if the item does not exist. Takes an argument, index, which must be the index into the collection.")]
  2016. HRESULT Item([in] VARIANT* pvIndex, [out, retval] IAGCStation** ppItemInterface);
  2017. };
  2018. /////////////////////////////////////////////////////////////////////////////
  2019. [
  2020. object, dual, pointer_default(unique), nonextensible,
  2021. uuid(0AFEC67E-0325-11D3-8B57-00C04F681633),
  2022. helpstring("IAGCAleph Interface")
  2023. ]
  2024. interface IAGCAleph : IAGCModel
  2025. {
  2026. [propget, helpstring("Gets the destination aleph.")]
  2027. HRESULT Destination([out, retval] IAGCAleph** ppDestination);
  2028. };
  2029. /////////////////////////////////////////////////////////////////////////////
  2030. [
  2031. object, dual, pointer_default(unique), nonextensible,
  2032. uuid(88400BB3-026B-11D3-8B55-00C04F681633),
  2033. helpstring("IAGCAlephs Interface")
  2034. ]
  2035. interface IAGCAlephs : IAGCCollection
  2036. {
  2037. [propget, id(DISPID_VALUE), helpstring("Returns a AGCAleph from the collection, or NULL if the AGCAleph does not exist. Takes an argument, index, which must be the index into the collection.")]
  2038. HRESULT Item([in] VARIANT* pvIndex, [out, retval] IAGCAleph** ppAGCAleph);
  2039. }; // End: interface IAGCAlephs : IAGCCollection
  2040. /////////////////////////////////////////////////////////////////////////////
  2041. [
  2042. object, dual, pointer_default(unique), nonextensible,
  2043. uuid(1FC0E193-EBA5-11D2-8B4B-00C04F681633),
  2044. helpstring("IAGCSector Interface")
  2045. ]
  2046. interface IAGCSector : IAGCBase
  2047. {
  2048. [propget, id(DISPID_VALUE), helpstring("Gets the AGCSector's name")]
  2049. HRESULT Name([out, retval] BSTR* pbstr);
  2050. // [propput]
  2051. // HRESULT Name([in] BSTR bstr);
  2052. [propget, id(dispid_Stations), helpstring("Gets the collection of stations in the sector.")]
  2053. HRESULT Stations([out, retval] IAGCStations** ppStations);
  2054. [propget, id(dispid_Ships), helpstring("Gets the collection of ships in the sector.")]
  2055. HRESULT Ships([out, retval] IAGCShips** ppShips);
  2056. [propget, id(dispid_Alephs), helpstring("Gets the collection of alephs in the sector.")]
  2057. HRESULT Alephs([out, retval] IAGCAlephs** ppAlephs);
  2058. [propget, id(dispid_Asteroids), helpstring("Gets the collection of asteroids in the sector.")]
  2059. HRESULT Asteroids([out, retval] IAGCAsteroids** ppAsteroids);
  2060. [helpstring("Sends the specified chat text to everyone in the Sector.")]
  2061. HRESULT SendChat([in] BSTR bstrText,
  2062. [in, defaultvalue(0)] VARIANT_BOOL bIncludeEnemies,
  2063. [in, defaultvalue(-1)] AGCSoundID idSound);
  2064. [helpstring("Sends the specified command to everyone in the Sector.")]
  2065. HRESULT SendCommand([in] BSTR bstrCommand, [in] IAGCModel* pModelTarget,
  2066. [in, defaultvalue(0)] VARIANT_BOOL bIncludeEnemies,
  2067. [in, defaultvalue(-1)] AGCSoundID idSound);
  2068. [propget, id(dispid_ScreenX), helpstring("Gets sector's X position relative to other sectors. This is used in the sector overview display. This value never changes.")]
  2069. HRESULT ScreenX([out, retval] float * pVal);
  2070. [propget, id(dispid_ScreenY), helpstring("Gets sector's Y position relative to other sectors. This is used in the sector overview display. This value never changes.")]
  2071. HRESULT ScreenY([out, retval] float * pVal);
  2072. [propget, id(dispid_Mines), helpstring("Gets the collection of mines in the sector.")]
  2073. HRESULT Mines([out, retval] IAGCModels** ppMines);
  2074. [propget, id(dispid_Missiles), helpstring("Gets the collection of missiles in the sector.")]
  2075. HRESULT Missiles([out, retval] IAGCModels** ppMissiles);
  2076. [propget, id(dispid_Probes), helpstring("Gets the collection of probes in the sector.")]
  2077. HRESULT Probes([out, retval] IAGCProbes** ppProbes);
  2078. [propget, id(dispid_Models), helpstring("Gets the collection of models in the sector.")]
  2079. HRESULT Models([out, retval] IAGCModels** ppModels);
  2080. [propget, id(dispid_SelectableModels), helpstring("Gets the collection of selectable models in the sector.")]
  2081. HRESULT SelectableModels([out, retval] IAGCModels** ppModels);
  2082. [propget, id(dispid_Treasures), helpstring("Gets the collection of treasures in the sector.")]
  2083. HRESULT Treasures([out, retval] IAGCModels** ppTreasures);
  2084. }; // End: interface IAGCSector : IAGCBase
  2085. /////////////////////////////////////////////////////////////////////////////
  2086. [
  2087. object, dual, pointer_default(unique), nonextensible,
  2088. uuid(338DA8FF-EBA5-11D2-8B4B-00C04F681633),
  2089. helpstring("IAGCSectors Interface")
  2090. ]
  2091. interface IAGCSectors : IAGCCollection
  2092. {
  2093. [propget, id(DISPID_VALUE), helpstring("Returns a AGCSector from the collection, or NULL if the sector does not exist. Takes an argument, index, which must be the index into the collection.")]
  2094. HRESULT Item([in] VARIANT* pvIndex, [out, retval] IAGCSector** ppItemInterface);
  2095. };
  2096. /////////////////////////////////////////////////////////////////////////////
  2097. [
  2098. object, dual, pointer_default(unique), nonextensible,
  2099. uuid(4214FD6F-EBA5-11D2-8B4B-00C04F681633),
  2100. helpstring("IAGCTeam Interface")
  2101. ]
  2102. interface IAGCTeam : IAGCBase
  2103. {
  2104. [propget, id(DISPID_VALUE), helpstring("Gets the team's name")]
  2105. HRESULT Name([out, retval] BSTR* pbstr);
  2106. // [propput]
  2107. // HRESULT Name([in] BSTR bstr);
  2108. [propget, id(dispid_Stations), helpstring("Returns a collection of stations that belong to the team.")]
  2109. HRESULT Stations([out, retval] IAGCStations** ppStations);
  2110. [propget, id(dispid_Ships), helpstring("Returns a Ships collection of the ships in the team.")]
  2111. HRESULT Ships([out, retval] IAGCShips** ppShips);
  2112. [propget, id(dispid_Civ), helpstring("Returns name of civ for team.")]
  2113. HRESULT Civ([out, retval] BSTR* pbstr);
  2114. [helpstring("Sends the specified chat text to everyone on the Team.")]
  2115. HRESULT SendChat([in] BSTR bstrText,
  2116. [in, defaultvalue(-1)] short idWing,
  2117. [in, defaultvalue(-1)] AGCSoundID idSound);
  2118. [helpstring("Sends the specified command to everyone on the Team.")]
  2119. HRESULT SendCommand([in] BSTR bstrCommand, [in] IAGCModel* pModelTarget,
  2120. [in, defaultvalue(-1)] short idWing,
  2121. [in, defaultvalue(-1)] AGCSoundID idSound);
  2122. // [propget, id(dispid_TeamOwner), helpstring("Returns the Ship of the team owner.")]
  2123. // HRESULT TeamOwner([out, retval] IAGCShip** ppShip);
  2124. }; // End: interface IAGCTeam : IAGCBase
  2125. /////////////////////////////////////////////////////////////////////////////
  2126. [
  2127. object, dual, pointer_default(unique), nonextensible,
  2128. uuid(65E8F3E4-EBA5-11D2-8B4B-00C04F681633),
  2129. helpstring("IAGCTeams Interface")
  2130. ]
  2131. interface IAGCTeams : IAGCCollection
  2132. {
  2133. [propget, id(DISPID_VALUE), helpstring("Returns a AGCTeam from the collection, or NULL if the game does not exist. Takes an argument, index, which must be the index into the collection.")]
  2134. HRESULT Item([in] VARIANT* pvIndex, [out, retval] IAGCTeam** ppItemInterface);
  2135. }; // End: interface IAGCTeams : IAGCCollection
  2136. /////////////////////////////////////////////////////////////////////////////
  2137. [
  2138. object, dual, pointer_default(unique), nonextensible,
  2139. uuid(8B4100A0-38B7-11d3-A51D-00C04F68DEB0),
  2140. helpstring("IAGCAsteroid Interface")
  2141. ]
  2142. interface IAGCAsteroid : IAGCDamage
  2143. {
  2144. [propget, helpstring("Gets the amount of ore remaining on the asteroid.")]
  2145. HRESULT Ore([out, retval] float* pfOre);
  2146. [propget, id(dispid_Capabilities), helpstring("Gets the Capabilities bit mask of the object.")]
  2147. HRESULT Capabilities([out, retval] AGCAsteroidAbilityBitMask* paabmCapabilities);
  2148. [propget, id(dispid_HasCapability), helpstring("Determines if the object has the specified capabilities.")]
  2149. HRESULT HasCapability([in] AGCAsteroidAbilityBitMask aabm,
  2150. [out, retval] VARIANT_BOOL* pbHasCapability);
  2151. }; // End: interface IAGCAsteroid : IAGCDamage
  2152. /////////////////////////////////////////////////////////////////////////////
  2153. [
  2154. object, dual, pointer_default(unique), nonextensible,
  2155. uuid(A61112C6-38B7-11d3-A51D-00C04F68DEB0),
  2156. helpstring("IAGCAsteroids Interface")
  2157. ]
  2158. interface IAGCAsteroids : IAGCCollection
  2159. {
  2160. [propget, id(DISPID_VALUE), helpstring("Returns an AGCAsteroid from the collection, or NULL if the game does not exist. Takes an argument, index, which must be the index into the collection.")]
  2161. HRESULT Item([in] VARIANT* pvIndex, [out, retval] IAGCAsteroid** ppItem);
  2162. }; // End: interface IAGCAsteroids : IAGCCollection
  2163. /////////////////////////////////////////////////////////////////////////
  2164. // Smart Pointer Declarations
  2165. cpp_quote("#ifdef __cplusplus")
  2166. cpp_quote(" extern \"C++\"")
  2167. cpp_quote(" {")
  2168. cpp_quote(" /////////////////////////////////////////////////////////////////////////")
  2169. cpp_quote(" // Smart Pointer Declarations")
  2170. cpp_quote("")
  2171. cpp_quote(" #if _MSC_VER >= 1100")
  2172. cpp_quote("")
  2173. cpp_quote(" #include <comdef.h>")
  2174. cpp_quote("")
  2175. cpp_quote(" #ifndef TC_COM_SMARTPTR_TYPEDEF")
  2176. cpp_quote(" #define TC_COM_SMARTPTR_TYPEDEF(Interface) \\")
  2177. cpp_quote(" _COM_SMARTPTR_TYPEDEF(Interface, __uuidof(Interface))")
  2178. cpp_quote(" #endif // TC_COM_SMARTPTR_TYPEDEF")
  2179. cpp_quote("")
  2180. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCEventSink);")
  2181. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCEventSinkSynchronous);")
  2182. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCDebugHook);")
  2183. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCGlobal);")
  2184. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCVector);")
  2185. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCVectorPrivate);")
  2186. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCOrientation);")
  2187. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCOrientationPrivate);")
  2188. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCEvent);")
  2189. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCEventCreate);")
  2190. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCGameParameters);")
  2191. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCCommand);")
  2192. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCCommandPrivate);")
  2193. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCVersionInfo);")
  2194. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCDBParams);")
  2195. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCEventLogger);")
  2196. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCEventLoggerHook);")
  2197. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCEventLoggerPrivate);")
  2198. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCRangePrivate);")
  2199. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCRangesPrivate);")
  2200. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCEventIDRange);")
  2201. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCEventIDRanges);")
  2202. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(ITCStrings);")
  2203. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(ITCPropBagOnRegKey);")
  2204. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(ITCSessionInfo);")
  2205. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(ITCSessionInfos);")
  2206. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(ITCCollectionPersistHelper);")
  2207. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(ITCUtility);")
  2208. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAdminSessionHelper);")
  2209. cpp_quote("")
  2210. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCPrivate);")
  2211. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCCommon);")
  2212. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCCollection);")
  2213. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCBase);")
  2214. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCModel);")
  2215. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCModels);")
  2216. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCBuyable);")
  2217. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCHullType);")
  2218. //cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCHullTypes);")
  2219. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCTreasure);")
  2220. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCTreasures);")
  2221. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCDamage);")
  2222. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCScanner);")
  2223. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCProbe);")
  2224. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCProbes);")
  2225. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCGame);")
  2226. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCShip);")
  2227. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCShips);")
  2228. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCStation);")
  2229. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCStations);")
  2230. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCAleph);")
  2231. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCAlephs);")
  2232. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCSector);")
  2233. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCSectors);")
  2234. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCTeam);")
  2235. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCTeams);")
  2236. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCAsteroid);")
  2237. cpp_quote(" TC_COM_SMARTPTR_TYPEDEF(IAGCAsteroids);")
  2238. cpp_quote("")
  2239. cpp_quote(" #endif // _MSC_VER >= 1100")
  2240. cpp_quote("")
  2241. cpp_quote("")
  2242. cpp_quote(" #if defined(AGC_HOST) || defined(AGC_MODULE)")
  2243. cpp_quote("")
  2244. cpp_quote(" #include \"AGCModule.h\"")
  2245. cpp_quote("")
  2246. cpp_quote(" extern CAGCModule _AGCModule;")
  2247. cpp_quote("")
  2248. cpp_quote(" #if defined(AGC_MODULE)")
  2249. cpp_quote("")
  2250. cpp_quote(" inline IAGCGlobalPtr GetAGCGlobal()")
  2251. cpp_quote(" {")
  2252. cpp_quote(" return _AGCModule.GetAGCGlobal();")
  2253. cpp_quote(" }")
  2254. cpp_quote("")
  2255. cpp_quote(" #else // AGC_MODULE")
  2256. cpp_quote("")
  2257. cpp_quote(" inline IAGCGlobal* GetAGCGlobal()")
  2258. cpp_quote(" {")
  2259. cpp_quote(" return _AGCModule.GetAGCGlobal();")
  2260. cpp_quote(" }")
  2261. cpp_quote("")
  2262. cpp_quote(" #endif // defined(AGC_MODULE)")
  2263. cpp_quote("")
  2264. cpp_quote(" #endif // defined(AGC_HOST) || defined(AGC_MODULE)")
  2265. cpp_quote("")
  2266. cpp_quote(" } // extern \"C++\"")
  2267. cpp_quote("#endif // __cplusplus")
  2268. cpp_quote("")