GME  13
Meta.idl
Go to the documentation of this file.
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