GME
13
|
00001 import "oaidl.idl"; 00002 import "ocidl.idl"; 00003 00004 #include "InterfaceColl.h" 00005 #include "InterfaceVersion.h" 00006 00007 00008 // --------------------------- Meta IDL 00009 00010 // ------- Typedefs 00011 00012 typedef long metaref_type; 00013 00014 typedef enum objtype_enum 00015 { 00016 OBJTYPE_NULL = 0, 00017 OBJTYPE_MODEL = 1, 00018 OBJTYPE_ATOM = 2, 00019 OBJTYPE_REFERENCE = 3, 00020 OBJTYPE_CONNECTION = 4, 00021 OBJTYPE_SET = 5, 00022 OBJTYPE_FOLDER = 6, 00023 OBJTYPE_ASPECT, 00024 OBJTYPE_ROLE, 00025 OBJTYPE_ATTRIBUTE, 00026 OBJTYPE_PART 00027 } objtype_enum; 00028 00029 typedef enum attval_enum 00030 { 00031 ATTVAL_NULL = 0, 00032 ATTVAL_STRING = 1, 00033 ATTVAL_INTEGER = 2, 00034 ATTVAL_DOUBLE = 3, 00035 ATTVAL_BOOLEAN = 4, 00036 ATTVAL_REFERENCE = 5, 00037 ATTVAL_ENUM, 00038 ATTVAL_DYNAMIC, 00039 } attval_enum; 00040 00041 typedef enum constraint_depth_enum 00042 { 00043 CONSTRAINT_DEPTH_ZERO, 00044 CONSTRAINT_DEPTH_ONE, 00045 CONSTRAINT_DEPTH_ANY 00046 } constraint_depth_enum; 00047 00048 typedef enum constraint_type_enum 00049 { 00050 CONSTRAINT_TYPE_EVENTBASED, 00051 CONSTRAINT_TYPE_ONDEMAND, 00052 CONSTRAINT_TYPE_FUNCTION 00053 } constraint_type_enum; 00054 00055 interface IMgaMetaProject; 00056 interface IMgaMetaBase; 00057 interface IMgaMetaFolder; 00058 interface IMgaMetaFCO; 00059 interface IMgaMetaModel; 00060 interface IMgaMetaAspect; 00061 interface IMgaMetaRole; 00062 interface IMgaMetaPart; 00063 interface IMgaMetaAtom; 00064 interface IMgaMetaReference; 00065 interface IMgaMetaSet; 00066 interface IMgaMetaConnection; 00067 interface IMgaMetaConnJoint; 00068 interface IMgaMetaAttribute; 00069 interface IMgaMetaPointerSpec; 00070 interface IMgaMetaPointerItem; 00071 interface IMgaMetaEnumItem; 00072 00073 interface IMgaMetaFCOs; 00074 interface IMgaMetaFolders; 00075 interface IMgaMetaAttributes; 00076 interface IMgaMetaRoles; 00077 interface IMgaMetaAspects; 00078 interface IMgaMetaPointerSpecs; 00079 interface IMgaMetaModels; 00080 interface IMgaMetaParts; 00081 interface IMgaMetaConnJoints; 00082 interface IMgaMetaPointerItems; 00083 interface IMgaMetaEnumItems; 00084 interface IMgaMetaRegNodes; 00085 interface IMgaConstraints; 00086 00087 [ 00088 object, 00089 uuid(83BA323D-B758-11D3-ABAE-000002387500), 00090 dual, 00091 helpstring("IMgaMetaRegNode Interface"), 00092 pointer_default(unique) 00093 ] 00094 interface IMgaMetaRegNode : IDispatch 00095 { 00096 // --- this node 00097 00098 [propget, helpstring("property Name")] 00099 HRESULT Name([out, retval] BSTR *p); 00100 00101 [propget, helpstring("property Value")] 00102 HRESULT Value([out, retval] BSTR *p); 00103 00104 [propput, helpstring("property Value")] 00105 HRESULT Value([in] BSTR p); 00106 00107 // destroy self 00108 [helpstring("method Delete")] 00109 HRESULT Delete(); 00110 00111 // --- other nodes 00112 00113 [propget, helpstring("property RegistryNodes")] 00114 HRESULT RegistryNodes([out, retval] IMgaMetaRegNodes **p); 00115 00116 [propget, helpstring("property RegistryNode")] 00117 HRESULT RegistryNode([in] BSTR path, [out, retval] IMgaMetaRegNode **p); 00118 00119 [helpstring("getter for property RegistryNode")] 00120 HRESULT GetRegistryNodeDisp([in] BSTR path, [out, retval] IMgaMetaRegNode **p); 00121 00122 [propget, helpstring("property RegistryValue")] 00123 HRESULT RegistryValue([in] BSTR path, [out, retval] BSTR *p); 00124 00125 [helpstring("getter for property RegistryValue")] 00126 HRESULT GetRegistryValueDisp([in] BSTR path, [out, retval] BSTR *p); 00127 00128 [propput, helpstring("property RegistryValue")] 00129 HRESULT RegistryValue([in] BSTR path, [in] BSTR p); 00130 00131 [helpstring("setter for property RegistryValue")] 00132 HRESULT SetRegistryValueDisp([in] BSTR path, [in] BSTR p); 00133 }; 00134 00135 00136 [ 00137 object, 00138 uuid(83BA3241-B758-11D3-ABAE-000000000000), 00139 dual, 00140 helpstring("IMgaConstraint Interface"), 00141 pointer_default(unique) 00142 ] 00143 interface IMgaConstraint : IDispatch 00144 { 00145 00146 [propget, helpstring("property Name")] 00147 HRESULT Name([out, retval] BSTR *p); 00148 00149 [propput, helpstring("property Name")] 00150 HRESULT Name([in] BSTR p); 00151 00152 [propget, helpstring("property DisplayedName")] 00153 HRESULT DisplayedName([out, retval] BSTR *p); 00154 00155 [propput, helpstring("property DisplayedName")] 00156 HRESULT DisplayedName([in] BSTR p); 00157 00158 [propget, helpstring("property Expression")] 00159 HRESULT Expression([out, retval] BSTR *p); 00160 00161 [propput, helpstring("property Expression")] 00162 HRESULT Expression([in] BSTR p); 00163 00164 [propget, helpstring("property EventMask")] 00165 HRESULT EventMask([out, retval] unsigned long *p); 00166 00167 [propput, helpstring("property EventMask")] 00168 HRESULT EventMask([in] unsigned long p); 00169 00170 [propget, helpstring("property Depth")] 00171 HRESULT Depth([out, retval] constraint_depth_enum *p); 00172 00173 [propput, helpstring("property Depth")] 00174 HRESULT Depth([in] constraint_depth_enum p); 00175 00176 [propget, helpstring("property Priority")] 00177 HRESULT Priority([out, retval] long *p); 00178 00179 [propput, helpstring("property Priority")] 00180 HRESULT Priority([in] long p); 00181 00182 [propget, helpstring("property Type")] 00183 HRESULT Type([out, retval] constraint_type_enum *p); 00184 00185 [propput, helpstring("property Type")] 00186 HRESULT Type([in] constraint_type_enum p); 00187 00188 // destroy self 00189 [helpstring("method Remove")] 00190 HRESULT Remove(); 00191 00192 [helpstring("SetDefinedForNamespace")] 00193 HRESULT SetDefinedForNamespace( [in] BSTR pStr); 00194 00195 [helpstring("GetDefinedForNamespace")] 00196 HRESULT GetDefinedForNamespace( [out, retval] BSTR * pStr); 00197 }; 00198 00199 [ 00200 object, 00201 uuid(83BA3243-B758-11D3-ABAE-000000000000), 00202 dual, 00203 helpstring("IMgaMetaProject Interface"), 00204 pointer_default(unique) 00205 ] 00206 interface IMgaMetaProject : IDispatch 00207 { 00208 // --- open/close 00209 00210 [helpstring("method Open")] 00211 HRESULT Open([in] BSTR connection); 00212 00213 [helpstring("method Close")] 00214 HRESULT Close(); 00215 00216 // --- create 00217 00218 [helpstring("method Create")] 00219 HRESULT Create([in] BSTR connection); 00220 00221 [helpstring("method BeginTransaction")] 00222 HRESULT BeginTransaction(); 00223 00224 // if fails call AbortTransaction 00225 [helpstring("method CommitTransaction")] 00226 HRESULT CommitTransaction(); 00227 00228 [helpstring("method AbortTransaction")] 00229 HRESULT AbortTransaction(); 00230 00231 // --- general data 00232 00233 // (0 To 15) As Byte 00234 [propget, helpstring("property GUID")] 00235 HRESULT GUID([out, retval] VARIANT *p); 00236 00237 // (0 To 15) As Byte 00238 [propput, helpstring("property GUID")] 00239 HRESULT GUID([in] VARIANT p); 00240 00241 [propget, helpstring("property Name")] 00242 HRESULT Name([out, retval] BSTR *p); 00243 00244 [propput, helpstring("property Name")] 00245 HRESULT Name([in] BSTR p); 00246 00247 [propget, helpstring("property DisplayedName")] 00248 HRESULT DisplayedName([out, retval] BSTR *p); 00249 00250 [propput, helpstring("property DisplayedName")] 00251 HRESULT DisplayedName([in] BSTR p); 00252 00253 [propget, helpstring("property Version")] 00254 HRESULT Version([out, retval] BSTR *p); 00255 00256 [propput, helpstring("property Version")] 00257 HRESULT Version([in] BSTR p); 00258 00259 [propget, helpstring("property Author")] 00260 HRESULT Author([out, retval] BSTR *p); 00261 00262 [propput, helpstring("property Author")] 00263 HRESULT Author([in] BSTR p); 00264 00265 [propget, helpstring("property Comment")] 00266 HRESULT Comment([out, retval] BSTR *p); 00267 00268 [propput, helpstring("property Comment")] 00269 HRESULT Comment([in] BSTR p); 00270 00271 [propget, helpstring("property CreatedAt")] 00272 HRESULT CreatedAt([out, retval] BSTR *p); 00273 00274 [propput, helpstring("property CreatedAt")] 00275 HRESULT CreatedAt([in] BSTR p); 00276 00277 [propget, helpstring("property ModifiedAt")] 00278 HRESULT ModifiedAt([out, retval] BSTR *p); 00279 00280 [propput, helpstring("property ModifiedAt")] 00281 HRESULT ModifiedAt([in] BSTR p); 00282 00283 // --- other objects 00284 00285 [propget, helpstring("property RootFolder")] 00286 HRESULT RootFolder([out, retval] IMgaMetaFolder **p); 00287 00288 [propget, helpstring("property FindObject")] 00289 HRESULT FindObject([in] metaref_type mref, 00290 [out, retval] IMgaMetaBase **p); 00291 00292 [helpstring("helper form for property FindObject")] 00293 HRESULT DoFindObjectDisp([in] metaref_type mref, 00294 [out, retval] IMgaMetaBase **p); 00295 00296 [helpstring("SetNmspc")] 00297 HRESULT SetNmspc( [in] BSTR pStr); 00298 00299 [helpstring("GetNmspc")] 00300 HRESULT GetNmspc( [out, retval] BSTR* pStr); 00301 }; 00302 00303 [ 00304 object, 00305 uuid(DB1E0FB7-C9CB-11D3-9AD2-00AA00B6FE26), 00306 dual, 00307 helpstring("IMgaMetaBase Interface"), 00308 pointer_default(unique) 00309 ] 00310 interface IMgaMetaBase : IDispatch 00311 { 00312 // --- identity 00313 00314 [propget, helpstring("property MetaRef")] 00315 HRESULT MetaRef([out, retval] metaref_type *p); 00316 00317 [propput, helpstring("property MetaRef")] 00318 HRESULT MetaRef([in] metaref_type p); 00319 00320 [propget, helpstring("property MetaProject")] 00321 HRESULT MetaProject([out, retval] IMgaMetaProject **p); 00322 00323 [propget, helpstring("property Name")] 00324 HRESULT Name([out, retval] BSTR *p); 00325 00326 [propput, helpstring("property Name")] 00327 HRESULT Name([in] BSTR p); 00328 00329 [propget, helpstring("property DisplayedName")] 00330 HRESULT DisplayedName([out, retval] BSTR *p); 00331 00332 [propput, helpstring("property DisplayedName")] 00333 HRESULT DisplayedName([in] BSTR p); 00334 00335 [propget, helpstring("property ObjType")] 00336 HRESULT ObjType([out, retval] objtype_enum *p); 00337 00338 // destroy self 00339 [helpstring("method Delete")] 00340 HRESULT Delete(); 00341 00342 // --- registry 00343 00344 [propget, helpstring("property RegistryNodes")] 00345 HRESULT RegistryNodes([out, retval] IMgaMetaRegNodes **p); 00346 00347 [propget, helpstring("property RegistryNode")] 00348 HRESULT RegistryNode([in] BSTR path, [out, retval] IMgaMetaRegNode **p); 00349 00350 [helpstring("getter for property RegistryNode")] 00351 HRESULT GetRegistryNodeDisp([in] BSTR path, [out, retval] IMgaMetaRegNode **p); 00352 00353 [propget, helpstring("property RegistryValue")] 00354 HRESULT RegistryValue([in] BSTR path, [out, retval] BSTR *p); 00355 00356 [helpstring("getter for property RegistryValue")] 00357 HRESULT GetRegistryValueDisp([in] BSTR path, [out, retval] BSTR *p); 00358 00359 [propput, helpstring("property RegistryValue")] 00360 HRESULT RegistryValue([in] BSTR path, [in] BSTR p); 00361 00362 [helpstring("setter for property RegistryValue")] 00363 HRESULT SetRegistryValueDisp([in] BSTR path, [in] BSTR p); 00364 00365 // --- constraints 00366 00367 [propget, helpstring("property Constraints")] 00368 HRESULT Constraints([out, retval] IMgaConstraints **p); 00369 00370 [helpstring("method CreateConstraint")] 00371 HRESULT CreateConstraint([out, retval] IMgaConstraint **p); 00372 }; 00373 00374 [ 00375 object, 00376 uuid(83BA3245-B758-11D3-ABAE-000000000000), 00377 dual, 00378 helpstring("IMgaMetaFolder Interface"), 00379 pointer_default(unique) 00380 ] 00381 interface IMgaMetaFolder : IMgaMetaBase 00382 { 00383 // --- definition 00384 00385 // NULL for the root folder 00386 [propget, helpstring("property DefinedIn")] 00387 HRESULT DefinedIn([out, retval] IMgaMetaFolder **p); 00388 00389 [propget, helpstring("property DefinedFolders")] 00390 HRESULT DefinedFolders([out, retval] IMgaMetaFolders **p); 00391 00392 [propget, helpstring("property DefinedFolderByName")] 00393 HRESULT DefinedFolderByName([in] BSTR name, [in] VARIANT_BOOL inscope, 00394 [out, retval] IMgaMetaFolder **p); 00395 00396 [helpstring("getter for property DefinedFolderByName")] 00397 HRESULT GetDefinedFolderByNameDisp([in] BSTR name, [in] VARIANT_BOOL inscope, 00398 [out, retval] IMgaMetaFolder **p); 00399 00400 [propget, helpstring("property DefinedFCOs")] 00401 HRESULT DefinedFCOs([out, retval] IMgaMetaFCOs **p); 00402 00403 [propget, helpstring("property DefinedFCOByName")] 00404 HRESULT DefinedFCOByName([in] BSTR name, [in] VARIANT_BOOL inscope, 00405 [out, retval] IMgaMetaFCO **p); 00406 00407 [helpstring("getter for property DefinedFCOByName")] 00408 HRESULT GetDefinedFCOByNameDisp([in] BSTR name, [in] VARIANT_BOOL inscope, 00409 [out, retval] IMgaMetaFCO **p); 00410 00411 [propget, helpstring("property DefinedAttributes")] 00412 HRESULT DefinedAttributes([out, retval] IMgaMetaAttributes **p); 00413 00414 [propget, helpstring("property DefinedAttributeByName")] 00415 HRESULT DefinedAttributeByName([in] BSTR name, [in] VARIANT_BOOL inscope, 00416 [out, retval] IMgaMetaAttribute **p); 00417 00418 [helpstring("getter for property DefinedAttributeByName")] 00419 HRESULT GetDefinedAttributeByNameDisp([in] BSTR name, [in] VARIANT_BOOL inscope, 00420 [out, retval] IMgaMetaAttribute **p); 00421 00422 // --- edit definition 00423 00424 [helpstring("method DefineFolder")] 00425 HRESULT DefineFolder([out, retval] IMgaMetaFolder **p); 00426 00427 [helpstring("method DefineModel")] 00428 HRESULT DefineModel([out, retval] IMgaMetaModel **p); 00429 00430 [helpstring("method DefineAtom")] 00431 HRESULT DefineAtom([out, retval] IMgaMetaAtom **p); 00432 00433 [helpstring("method DefineReference")] 00434 HRESULT DefineReference([out, retval] IMgaMetaReference **p); 00435 00436 [helpstring("method DefineSet")] 00437 HRESULT DefineSet([out, retval] IMgaMetaSet **p); 00438 00439 [helpstring("method DefineConnection")] 00440 HRESULT DefineConnection([out, retval] IMgaMetaConnection **p); 00441 00442 [helpstring("method DefineAttribute")] 00443 HRESULT DefineAttribute([out, retval] IMgaMetaAttribute **p); 00444 00445 // --- containment 00446 00447 [propget, helpstring("property LegalChildFolders")] 00448 HRESULT LegalChildFolders([out, retval] IMgaMetaFolders **p); 00449 00450 [propget, helpstring("property LegalChildFolderByName")] 00451 HRESULT LegalChildFolderByName([in] BSTR name, [out, retval] IMgaMetaFolder **p); 00452 00453 [helpstring("getter for property LegalChildFolderByName")] 00454 HRESULT GetLegalChildFolderByNameDisp([in] BSTR name, [out, retval] IMgaMetaFolder **p); 00455 00456 [propget, helpstring("property LegalRootObjects")] 00457 HRESULT LegalRootObjects([out, retval] IMgaMetaFCOs **p); 00458 00459 [propget, helpstring("property LegalRootObjectByName")] 00460 HRESULT LegalRootObjectByName([in] BSTR name, [out, retval] IMgaMetaFCO **p); 00461 00462 [helpstring("getter for property LegalRootObjectByName")] 00463 HRESULT GetLegalRootObjectByNameDisp([in] BSTR name, [out, retval] IMgaMetaFCO **p); 00464 00465 // all MgaMetaFolder where it occurs in LegalChildFolders 00466 [propget, helpstring("property UsedInFolders")] 00467 HRESULT UsedInFolders([out, retval] IMgaMetaFolders **p); 00468 00469 // --- edit containment 00470 00471 [helpstring("method AddLegalChildFolder")] 00472 HRESULT AddLegalChildFolder([in] IMgaMetaFolder *p); 00473 00474 [helpstring("method RemoveLegalChildFolder")] 00475 HRESULT RemoveLegalChildFolder([in] IMgaMetaFolder *p); 00476 00477 [helpstring("method AddLegalRootObject")] 00478 HRESULT AddLegalRootObject([in] IMgaMetaFCO *p); 00479 00480 [helpstring("method RemoveLegalRootObject")] 00481 HRESULT RemoveLegalRootObject([in] IMgaMetaFCO *p); 00482 }; 00483 00484 [ 00485 object, 00486 uuid(83BA3247-B758-11D3-ABAE-000000000000), 00487 dual, 00488 helpstring("IMgaMetaFCO Interface"), 00489 pointer_default(unique) 00490 ] 00491 interface IMgaMetaFCO : IMgaMetaBase 00492 { 00493 // --- definition 00494 00495 // an MgaMetaFCO can be defined in either 00496 // (1) MgaMetaFolder::DefinedFCOs, or 00497 // (2) MgaMetaModel::DefinedFCOs 00498 00499 [propget, helpstring("property DefinedIn")] 00500 HRESULT DefinedIn([out, retval] IMgaMetaBase **p); 00501 00502 [propget, helpstring("property DefinedAttributes")] 00503 HRESULT DefinedAttributes([out, retval] IMgaMetaAttributes **p); 00504 00505 [propget, helpstring("property DefinedAttributeByName")] 00506 HRESULT DefinedAttributeByName([in] BSTR name, [in] VARIANT_BOOL inscope, 00507 [out, retval] IMgaMetaAttribute **p); 00508 00509 [helpstring("getter for property DefinedAttributeByName")] 00510 HRESULT GetDefinedAttributeByNameDisp([in] BSTR name, [in] VARIANT_BOOL inscope, 00511 [out, retval] IMgaMetaAttribute **p); 00512 00513 // --- edit definition 00514 00515 [helpstring("method DefineAttribute")] 00516 HRESULT DefineAttribute([out, retval] IMgaMetaAttribute **p); 00517 00518 // --- containment 00519 00520 // all MgaMetaRoles where it occurs as MgaMetaRole::Kind 00521 [propget, helpstring("property UsedInRoles")] 00522 HRESULT UsedInRoles([out, retval] IMgaMetaRoles **p); 00523 00524 // all MgaMetaFolder where it occurs in LegalRootObjects 00525 [propget, helpstring("property UsedInFolders")] 00526 HRESULT UsedInFolders([out, retval] IMgaMetaFolders **p); 00527 00528 [propget, helpstring("property Attributes")] 00529 HRESULT Attributes([out, retval] IMgaMetaAttributes **p); 00530 00531 // NULL if not valid 00532 [propget, helpstring("property AttributeByName")] 00533 HRESULT AttributeByName([in] BSTR name, 00534 [out, retval] IMgaMetaAttribute **p); 00535 00536 [helpstring("getter for property AttributeByName")] 00537 HRESULT GetAttributeByNameDisp([in] BSTR name, 00538 [out, retval] IMgaMetaAttribute **p); 00539 00540 // NULL if not valid 00541 [propget, helpstring("property AttributeByRef")] 00542 HRESULT AttributeByRef([in] metaref_type mref, 00543 [out, retval] IMgaMetaAttribute **p); 00544 00545 [helpstring("getter for property AttributeByRef")] 00546 HRESULT GetAttributeByRefDisp([in] metaref_type mref, 00547 [out, retval] IMgaMetaAttribute **p); 00548 00549 [propget, helpstring("property AliasEnabled")] 00550 HRESULT AliasingEnabled([out,retval] VARIANT_BOOL *pVal); 00551 00552 // --- edit containment 00553 00554 [helpstring("method AddAttribute")] 00555 HRESULT AddAttribute([in] IMgaMetaAttribute *p); 00556 00557 [helpstring("method RemoveAttribute")] 00558 HRESULT RemoveAttribute([in] IMgaMetaAttribute *p); 00559 00560 [propput, helpstring("property AliasEnabled")] 00561 HRESULT AliasingEnabled([in] VARIANT_BOOL newVal); 00562 }; 00563 00564 [ 00565 object, 00566 uuid(83BA3249-B758-11D3-ABAE-000000000000), 00567 dual, 00568 helpstring("IMgaMetaModel Interface"), 00569 pointer_default(unique) 00570 ] 00571 interface IMgaMetaModel : IMgaMetaFCO 00572 { 00573 // --- definition 00574 00575 [propget, helpstring("property DefinedFCOs")] 00576 HRESULT DefinedFCOs([out, retval] IMgaMetaFCOs **p); 00577 00578 [propget, helpstring("property DefinedFCOByName")] 00579 HRESULT DefinedFCOByName([in] BSTR name, [in] VARIANT_BOOL inscope, 00580 [out, retval] IMgaMetaFCO **p); 00581 00582 [helpstring("getter for property DefinedFCOByName")] 00583 HRESULT GetDefinedFCOByNameDisp([in] BSTR name, [in] VARIANT_BOOL inscope, 00584 [out, retval] IMgaMetaFCO **p); 00585 00586 // --- edit definition 00587 00588 [helpstring("method DefineModel")] 00589 HRESULT DefineModel([out, retval] IMgaMetaModel **p); 00590 00591 [helpstring("method DefineAtom")] 00592 HRESULT DefineAtom([out, retval] IMgaMetaAtom **p); 00593 00594 [helpstring("method DefineReference")] 00595 HRESULT DefineReference([out, retval] IMgaMetaReference **p); 00596 00597 [helpstring("method DefineSet")] 00598 HRESULT DefineSet([out, retval] IMgaMetaSet **p); 00599 00600 [helpstring("method DefineConnection")] 00601 HRESULT DefineConnection([out, retval] IMgaMetaConnection **p); 00602 00603 // --- containment 00604 00605 [propget, helpstring("property Roles")] 00606 HRESULT Roles([out, retval] IMgaMetaRoles **p); 00607 00608 [propget, helpstring("property RoleByName")] 00609 HRESULT RoleByName([in] BSTR name, [out, retval] IMgaMetaRole **p); 00610 00611 [helpstring("getter for property RoleByName")] 00612 HRESULT GetRoleByNameDisp([in] BSTR name, [out, retval] IMgaMetaRole **p); 00613 00614 [propget, helpstring("property Aspects")] 00615 HRESULT Aspects([out, retval] IMgaMetaAspects **p); 00616 00617 [propget, helpstring("property AspectByName")] 00618 HRESULT AspectByName([in] BSTR name, [out, retval] IMgaMetaAspect **p); 00619 00620 [helpstring("getter for property AspectByName")] 00621 HRESULT GetAspectByNameDisp([in] BSTR name, [out, retval] IMgaMetaAspect **p); 00622 00623 // --- edit containment 00624 00625 [helpstring("method CreateRole")] 00626 HRESULT CreateRole([in] IMgaMetaFCO *Kind, [out, retval] IMgaMetaRole **p); 00627 00628 [helpstring("method CreateAspect")] 00629 HRESULT CreateAspect([out, retval] IMgaMetaAspect **p); 00630 00631 // --- legal roles 00632 00633 // local paths : "src metaref metaref ... metaref, dst metaref ..." 00634 [helpstring("method LegalConnectionRoles")] 00635 HRESULT LegalConnectionRoles([in] BSTR paths, 00636 [out, retval] IMgaMetaRoles **p); 00637 00638 // global path : "metaref metaref ... metaref" 00639 [helpstring("method LegalReferenceRoles")] 00640 HRESULT LegalReferenceRoles([in] BSTR path, 00641 [out, retval] IMgaMetaRoles **p); 00642 00643 // local path : "metaref metaref ... metaref" 00644 [helpstring("method LegalSetRoles")] 00645 HRESULT LegalSetRoles([in] BSTR path, 00646 [out, retval] IMgaMetaRoles **p); 00647 00648 [helpstring("method LegalRoles")] 00649 HRESULT LegalRoles([in] IMgaMetaFCO *k, 00650 [out, retval] IMgaMetaRoles **p); 00651 }; 00652 00653 /* 00654 local path: 00655 00656 "<role metaref 1> <role metaref 2> ... <role metaref n>" 00657 00658 Where <role metaref 1> must be a role in the parent model of the set or connection. 00659 If <role metaref 1> identifies a model then <role metaref 2> must be a role in that model. 00660 If <role metaref 1> is a reference then <role metaref 2> must be a role in the 00661 final model at the end of the reference chain. The same for the other role names. 00662 00663 global path: 00664 00665 "<kind metaref> <role metaref 1> <role metaref 2> ... <role metaref n>" 00666 00667 The <kind metaref> must be the kind of a root object. The chain streches from 00668 this root model to the final child along the "parent-child" hierarchy. 00669 If <kind metaref> is a model then <role metaref 1> must be a role in that model. 00670 If <kind metaref> is a reference then <role metaref 1> must be a role in the final 00671 model at the end of the reference chain. The other role names behave the same. 00672 */ 00673 00674 [ 00675 object, 00676 uuid(83BA324B-B758-11D3-ABAE-000000000000), 00677 dual, 00678 helpstring("IMgaMetaAspect Interface"), 00679 pointer_default(unique) 00680 ] 00681 interface IMgaMetaAspect : IMgaMetaBase 00682 { 00683 // --- containment 00684 00685 [propget, helpstring("property ParentModel")] 00686 HRESULT ParentModel([out, retval] IMgaMetaModel **p); 00687 00688 [propget, helpstring("property Parts")] 00689 HRESULT Parts([out, retval] IMgaMetaParts **p); 00690 00691 // the editable attributes 00692 [propget, helpstring("property Attributes")] 00693 HRESULT Attributes([out, retval] IMgaMetaAttributes **p); 00694 00695 // --- edit containment 00696 00697 [helpstring("method CreatePart")] 00698 HRESULT CreatePart([in] IMgaMetaRole *r, [out, retval] IMgaMetaPart **p); 00699 00700 [helpstring("method AddAttribute")] 00701 HRESULT AddAttribute([in] IMgaMetaAttribute *p); 00702 00703 [helpstring("method RemoveAttribute")] 00704 HRESULT RemoveAttribute([in] IMgaMetaAttribute *p); 00705 }; 00706 00707 [ 00708 object, 00709 uuid(83BA324D-B758-11D3-ABAE-000000000000), 00710 dual, 00711 helpstring("IMgaMetaRole Interface"), 00712 pointer_default(unique) 00713 ] 00714 interface IMgaMetaRole : IMgaMetaBase 00715 { 00716 // --- containment 00717 00718 [propget, helpstring("property ParentModel")] 00719 HRESULT ParentModel([out, retval] IMgaMetaModel **p); 00720 00721 [propget, helpstring("property Parts")] 00722 HRESULT Parts([out, retval] IMgaMetaParts **p); 00723 00724 // the corresponding FCO 00725 [propget, helpstring("property Kind")] 00726 HRESULT Kind([out, retval] IMgaMetaFCO **p); 00727 }; 00728 00729 [ 00730 object, 00731 uuid(A70CAB45-DD94-11D3-9308-444553540000), 00732 dual, 00733 helpstring("IMgaMetaPart Interface"), 00734 pointer_default(unique) 00735 ] 00736 interface IMgaMetaPart : IMgaMetaBase 00737 { 00738 // --- containment 00739 00740 [propget, helpstring("property Role")] 00741 HRESULT Role([out, retval] IMgaMetaRole **p); 00742 00743 [propget, helpstring("property Aspect")] 00744 HRESULT ParentAspect([out, retval] IMgaMetaAspect **p); 00745 00746 // --- data 00747 00748 [propget, helpstring("property IsPrimary")] 00749 HRESULT IsPrimary([out, retval] VARIANT_BOOL *p); 00750 00751 [propput, helpstring("property IsPrimary")] 00752 HRESULT IsPrimary([in] VARIANT_BOOL p); 00753 00754 [propget, helpstring("property IsLinked")] 00755 HRESULT IsLinked([out, retval] VARIANT_BOOL *p); 00756 00757 [propput, helpstring("property IsLinked")] 00758 HRESULT IsLinked([in] VARIANT_BOOL p); 00759 00760 [propget, helpstring("property KindAspect")] 00761 HRESULT KindAspect([out, retval] BSTR *p); 00762 00763 [propput, helpstring("property KindAspect")] 00764 HRESULT KindAspect([in] BSTR p); 00765 }; 00766 00767 [ 00768 object, 00769 uuid(83BA324F-B758-11D3-ABAE-000000000000), 00770 dual, 00771 helpstring("IMgaMetaAtom Interface"), 00772 pointer_default(unique) 00773 ] 00774 interface IMgaMetaAtom : IMgaMetaFCO 00775 { 00776 }; 00777 00778 [ 00779 object, 00780 uuid(83BA3259-B758-11D3-ABAE-000000000000), 00781 dual, 00782 helpstring("IMgaMetaAttribute Interface"), 00783 pointer_default(unique) 00784 ] 00785 interface IMgaMetaAttribute : IMgaMetaBase 00786 { 00787 // --- definition 00788 00789 // an MgaMetaAttribute can be defined in either 00790 // (1) MgaMetaFolder::DefinedAttributes, or 00791 // (2) MgaMetaFCO::DefinedAttributes 00792 00793 [propget, helpstring("property DefinedIn")] 00794 HRESULT DefinedIn([out, retval] IMgaMetaBase **p); 00795 00796 // --- containment 00797 00798 // all FCOs where it occurs in MgaMetaFCO::Attributes 00799 [propget, helpstring("property UsedIn")] 00800 HRESULT UsedIn([out, retval] IMgaMetaFCOs **p); 00801 00802 // --- data 00803 00804 [propget, helpstring("property Viewable")] 00805 HRESULT Viewable([out, retval] VARIANT_BOOL *p); 00806 00807 [propget, helpstring("property DefaultValue")] 00808 HRESULT DefaultValue([out, retval] VARIANT *p); 00809 00810 [propget, helpstring("property ValueType")] 00811 HRESULT ValueType([out, retval] attval_enum *attval); 00812 00813 [propget, helpstring("property EnumItems")] 00814 HRESULT EnumItems([out, retval] IMgaMetaEnumItems **p); 00815 00816 // --- edit data 00817 00818 [propput, helpstring("property Viewable")] 00819 HRESULT Viewable([in] VARIANT_BOOL p); 00820 00821 [propput, helpstring("property DefaultValue")] 00822 HRESULT DefaultValue([in] BSTR p); 00823 00824 [propput, helpstring("property ValueType")] 00825 HRESULT ValueType([in] attval_enum attval); 00826 00827 [helpstring("method CreateEnumItem")] 00828 HRESULT CreateEnumItem([out, retval] IMgaMetaEnumItem **p); 00829 }; 00830 00831 [ 00832 object, 00833 uuid(83254259-B758-21D3-7BAE-000000000000), 00834 dual, 00835 helpstring("IMgaMetaEnumItem Interface"), 00836 pointer_default(unique) 00837 ] 00838 interface IMgaMetaEnumItem : IDispatch 00839 { 00840 [propget, helpstring("property Parent")] 00841 HRESULT Parent([out, retval] IMgaMetaAttribute **p); 00842 00843 // --- data 00844 00845 [propget, helpstring("property DisplayedName")] 00846 HRESULT DisplayedName([out, retval] BSTR *p); 00847 00848 [propget, helpstring("property Value")] 00849 HRESULT Value([out, retval] BSTR *p); 00850 00851 // --- edit data 00852 00853 [propput, helpstring("property DisplayedName")] 00854 HRESULT DisplayedName([in] BSTR p); 00855 00856 [propput, helpstring("property Value")] 00857 HRESULT Value([in] BSTR p); 00858 }; 00859 00860 [ 00861 object, 00862 uuid(83BA3251-B758-11D3-ABAE-000000000000), 00863 dual, 00864 helpstring("IMgaMetaReference Interface"), 00865 pointer_default(unique) 00866 ] 00867 interface IMgaMetaReference : IMgaMetaFCO 00868 { 00869 [propget, helpstring("property RefSpec")] 00870 HRESULT RefSpec([out, retval] IMgaMetaPointerSpec **p); 00871 00872 // global path : "metaref metaref ... metaref" 00873 [helpstring("method CheckPath")] 00874 HRESULT CheckPath([in] BSTR path, [out, retval] VARIANT_BOOL *p); 00875 }; 00876 00877 [ 00878 object, 00879 uuid(83BA3253-B758-11D3-ABAE-000000000000), 00880 dual, 00881 helpstring("IMgaMetaSet Interface"), 00882 pointer_default(unique) 00883 ] 00884 interface IMgaMetaSet : IMgaMetaFCO 00885 { 00886 [propget, helpstring("property MemberSpec")] 00887 HRESULT MemberSpec([out, retval] IMgaMetaPointerSpec **p); 00888 00889 // local path : "metaref metaref ... metaref" 00890 [helpstring("method CheckPath")] 00891 HRESULT CheckPath([in] BSTR path, [out, retval] VARIANT_BOOL *p); 00892 }; 00893 00894 [ 00895 object, 00896 uuid(83BA3255-B758-11D3-ABAE-000000000000), 00897 dual, 00898 helpstring("IMgaMetaConnection Interface"), 00899 pointer_default(unique) 00900 ] 00901 interface IMgaMetaConnection : IMgaMetaFCO 00902 { 00903 [propget, helpstring("property Joints")] 00904 HRESULT Joints([out, retval] IMgaMetaConnJoints **p); 00905 00906 // local paths : "src metaref metaref ... metaref, dst metaref ..." 00907 [helpstring("method CheckPaths")] 00908 HRESULT CheckPaths([in] BSTR paths, [out, retval] VARIANT_BOOL *p); 00909 00910 [propget, helpstring("property IsSimple")] 00911 HRESULT IsSimple([out, retval] VARIANT_BOOL *p); 00912 00913 // --- edit 00914 00915 [helpstring("method CreateJoint")] 00916 HRESULT CreateJoint([out, retval] IMgaMetaConnJoint **p); 00917 }; 00918 00919 [ 00920 object, 00921 uuid(83BA3257-B758-11D3-ABAE-000000000000), 00922 dual, 00923 helpstring("IMgaMetaConnJoint Interface"), 00924 pointer_default(unique) 00925 ] 00926 interface IMgaMetaConnJoint : IDispatch 00927 { 00928 [propget, helpstring("property Parent")] 00929 HRESULT Parent([out, retval] IMgaMetaConnection **p); 00930 00931 [propget, helpstring("property PointerSpecs")] 00932 HRESULT PointerSpecs([out, retval] IMgaMetaPointerSpecs **p); 00933 00934 [propget, helpstring("property PointerSpecByName")] 00935 HRESULT PointerSpecByName([in] BSTR name, 00936 [out, retval] IMgaMetaPointerSpec **p); 00937 00938 [helpstring("getter for property PointerSpecByName")] 00939 HRESULT GetPointerSpecByNameDisp([in] BSTR name, 00940 [out, retval] IMgaMetaPointerSpec **p); 00941 00942 // --- edit 00943 00944 [helpstring("method CreatePointerSpec")] 00945 HRESULT CreatePointerSpec([out, retval] IMgaMetaPointerSpec **p); 00946 }; 00947 00948 [ 00949 object, 00950 uuid(83BA325B-B758-11D3-ABAE-000000000000), 00951 dual, 00952 helpstring("IMgaMetaPointerSpec Interface"), 00953 pointer_default(unique) 00954 ] 00955 interface IMgaMetaPointerSpec : IDispatch 00956 { 00957 // MgaMetaReference, MgaMetaSet or MgaMetaConnJoint 00958 [propget, helpstring("property Parent")] 00959 HRESULT Parent([out, retval] IDispatch **p); 00960 00961 [propget, helpstring("property Name")] 00962 HRESULT Name([out, retval] BSTR *p); 00963 00964 [propget, helpstring("property Items")] 00965 HRESULT Items([out, retval] IMgaMetaPointerItems **p); 00966 00967 // --- edit data 00968 00969 [propput, helpstring("property Name")] 00970 HRESULT Name([in] BSTR p); 00971 00972 [helpstring("property CreateItem")] 00973 HRESULT CreateItem([out, retval] IMgaMetaPointerItem **p); 00974 }; 00975 00976 [ 00977 object, 00978 uuid(83518A5B-B758-11D3-ABAE-006928360000), 00979 dual, 00980 helpstring("IMgaMetaPointerItem Interface"), 00981 pointer_default(unique) 00982 ] 00983 interface IMgaMetaPointerItem : IDispatch 00984 { 00985 [propget, helpstring("property Parent")] 00986 HRESULT Parent([out, retval] IMgaMetaPointerSpec **p); 00987 00988 [propget, helpstring("property Desc")] 00989 HRESULT Desc([out, retval] BSTR *p); 00990 00991 // --- edit 00992 00993 [propput, helpstring("property Desc")] 00994 HRESULT Desc([in] BSTR p); 00995 }; 00996 00997 /* 00998 There are two kinds of descriptions. One is called the "local path" for 00999 sets and connections. The other is the "global path" for references. 01000 This is the stuff you put into the XML file. 01001 01002 local path: 01003 01004 "<role name 1> <role name 2> ... <role name n>" 01005 01006 Where <role name 1> must be a role in the parent model of the set or connection. 01007 If <role name 1> identifies a model then <role name 2> must be a role in that model. 01008 If <role name 1> is a reference then <role name 2> must be a role in the 01009 final model at the end of the reference chain. The same for the other role names. 01010 01011 global path: 01012 01013 "<kind name> <role name 1> <role name 2> ... <role name n>" 01014 01015 If <kind name> is a model then <role name 1> must be a role in that model. 01016 If <kind name> is a reference then <role name 1> must be a role in the final 01017 model at the end of the reference chain. The other role names behave the same. 01018 */ 01019 01020 // MGACOLL_INTERFACE-s 01021 // - support Insert, Append, Find, Remove 01022 // - have classes creatable by CoCreateInstance 01023 MGACOLL_INTERFACE(c61352b0-c1fd-11d3-9ad2-00aa00b6fe26, MgaMetaAspect) 01024 MGACOLL_INTERFACE(c851e130-c1fd-11d3-9ad2-00aa00b6fe26, MgaMetaRole) 01025 MGACOLL_INTERFACE(c66a6c60-c1fd-11d3-9ad2-00aa00b6fe26, MgaMetaFCO) 01026 MGACOLL_INTERFACE(c6922740-c1fd-11d3-9ad2-00aa00b6fe26, MgaMetaAttribute) 01027 MGACOLL_INTERFACE(c6b85af0-c1fd-11d3-9ad2-00aa00b6fe26, MgaMetaFolder) 01028 MGACOLL_INTERFACE(c761f8c0-c1fd-11d3-9ad2-00aa00b6fe26, MgaMetaPointerSpec) 01029 MGACOLL_INTERFACE(c795ed20-c1fd-11d3-9ad2-00aa00b6fe27, MgaMetaRegNode) 01030 MGACOLL_INTERFACE(c8ec3720-c1fd-11d3-9ad2-00aa00b6fe26, MgaConstraint) 01031 MGACOLL_INTERFACE(c8ec3720-c1fd-11d3-9ad2-00aa00b6fe27, MgaMetaPart) 01032 MGACOLL_INTERFACE(c8ec3723-c1fd-11d3-9ad2-00aa00b6fe27, MgaMetaModel) 01033 MGACOLL_INTERFACE(c8432623-c1fd-11d3-9ad2-00aa00b6fe27, MgaMetaConnJoint) 01034 MGACOLL_INTERFACE(c8124623-c51d-11d3-9ad2-00aa00b6fe27, MgaMetaPointerItem) 01035 MGACOLL_INTERFACE(c8124623-c51d-1ad3-9ad2-11aa0176fe27, MgaMetaEnumItem) 01036 01037