GME
13
|
00001 import "oaidl.idl"; 00002 import "ocidl.idl"; 00003 00004 #include "InterfaceColl.h" 00005 #include "InterfaceVersion.h" 00006 00007 import "Meta.idl"; 00008 00009 // --------------------------- Mga IDL 00010 00011 interface IMgaProject; 00012 interface IMgaTerritory; 00013 interface IMgaAddOn; 00014 interface IMgaComponent; 00015 interface IMgaClient; 00016 interface IMgaEventSink; 00017 00018 interface IMgaObject; 00019 interface IMgaFCO; 00020 interface IMgaFolder; 00021 interface IMgaModel; 00022 interface IMgaAtom; 00023 interface IMgaPart; 00024 interface IMgaConnection; 00025 interface IMgaReference; 00026 interface IMgaSet; 00027 interface IMgaSimpleConnection; 00028 interface IMgaConnPoint; 00029 interface IMgaFilter; 00030 interface IMgaAttribute; 00031 interface IMgaRegNode; 00032 00033 interface IMgaObjects; 00034 interface IMgaFCOs; 00035 interface IMgaFolders; 00036 interface IMgaParts; 00037 interface IMgaAttributes; 00038 interface IMgaRegNodes; 00039 interface IMgaConnPoints; 00040 interface IMgaAddOns; 00041 interface IMgaTerritories; 00042 interface IMgaComponents; 00043 interface IMgaClients; 00044 00045 // ------- Typedefs 00046 00047 typedef enum accesstype_enum { 00048 ACC_NULL = 0, 00049 ACC_READ = 1, 00050 ACC_WRITE = 2, 00051 ACC_LINK = 4, 00052 } accesstype_enum; 00053 00054 typedef enum transactiontype_enum { 00055 TRANSACTION_GENERAL, 00056 TRANSACTION_READ_ONLY, 00057 TRANSACTION_NON_NESTED 00058 } transactiontype_enum; 00059 00060 00061 typedef enum attstatus_enum { 00062 ATTSTATUS_HERE = 0, 00063 ATTSTATUS_METADEFAULT = -1, 00064 ATTSTATUS_UNDEFINED = -2, 00065 ATTSTATUS_INVALID = -3, 00066 //AND: 00067 ATTSTATUS_IN_ARCHETYPE1 = 1, 00068 ATTSTATUS_IN_ARCHETYPE2 = 2, 00069 ATTSTATUS_IN_ARCHETYPE3 = 3, 00070 ATTSTATUS_IN_ARCHETYPE4 = 4, 00071 // etc. 00072 } attstatus_enum; 00073 00074 typedef BSTR ID_type; 00075 00076 typedef enum openmode { OPEN_READ = 1, OPEN_READWRITE = 3} openmode; 00077 00078 typedef enum globalevent_enum { 00079 GLOBALEVENT_OPEN_PROJECT, // include create 00080 GLOBALEVENT_CLOSE_PROJECT, 00081 GLOBALEVENT_SAVE_PROJECT, 00082 GLOBALEVENT_NEW_TERRITORY, 00083 GLOBALEVENT_DESTROY_TERRITORY, // any territory has been destroyed (includes destroy by release) 00084 GLOBALEVENT_COMMIT_TRANSACTION, 00085 GLOBALEVENT_ABORT_TRANSACTION, 00086 GLOBALEVENT_UNDO, 00087 GLOBALEVENT_REDO, 00088 GLOBALEVENT_PROJECT_PROPERTIES, // project properties Name, author, etc changed 00089 GLOBALEVENT_NOTIFICATION_READY, 00090 GLOBALEVENT_OPEN_PROJECT_FINISHED, // notification is sent after 1. File>New 2. File>Open 3. File>Import XML 00091 // application specific (GUI) events 00092 APPEVENT_XML_IMPORT_BEGIN = 0xFF, 00093 APPEVENT_XML_IMPORT_END, 00094 APPEVENT_XML_IMPORT_FCOS_BEGIN, 00095 APPEVENT_XML_IMPORT_FCOS_END, 00096 APPEVENT_XML_IMPORT_SPECIAL_BEGIN, 00097 APPEVENT_XML_IMPORT_SPECIAL_END, 00098 APPEVENT_LIB_ATTACH_BEGIN, 00099 APPEVENT_LIB_ATTACH_END 00100 00101 } globalevent_enum; 00102 00103 00104 const long RELID_BASE_MAX = 0x7FFFFFF; //assigned to non-derived ojects 00105 const long RELID_VALUE_MAX = 0x7FFFFFFF; // automatically assigned to deriveds 00106 00107 00108 typedef enum objectevent_enum { 00109 [ helpstring("The object has been created")] 00110 OBJEVENT_CREATED = 0x80000000, 00111 [ helpstring("The object has been destroyed (limited access is available)")] 00112 OBJEVENT_DESTROYED = 0x40000000, 00113 [ helpstring("The object is going to be deleted.")] 00114 OBJEVENT_PRE_DESTROYED = 0x20000000, 00115 [ helpstring("Status of attribute/registry node is going to change.")] 00116 OBJEVENT_PRE_STATUS = 0x10000000, 00117 [ helpstring("The object is being copied.")] 00118 OBJEVENT_COPIED = 0x08000000, 00119 [ helpstring("Attribute changed")] 00120 OBJEVENT_ATTR = 0x00000001, 00121 [ helpstring("Registry changed")] 00122 OBJEVENT_REGISTRY = 0x00000002, 00123 [ helpstring("child added")] 00124 OBJEVENT_NEWCHILD = 0x00000004, 00125 [ helpstring("ref pointer, set member, conn endpoint change")] 00126 OBJEVENT_RELATION = 0x00000008, 00127 [ helpstring("Name, etc.")] 00128 OBJEVENT_PROPERTIES = 0x00000010, 00129 [ helpstring("Subtype, instance created")] 00130 OBJEVENT_SUBT_INST = 0x00000020, 00131 //[ helpstring("Basetype relation broken/added (???)")] 00132 // OBJEVENT_BASE = 0x00000040, 00133 //[ helpstring("Anything under the object 'Position' regnode")] 00134 // OBJEVENT_POSITION = 0x00000080, 00135 [ helpstring("Object has been moved")] 00136 OBJEVENT_PARENT = 0x00000100, 00137 [ helpstring("child removed/ moved away")] 00138 OBJEVENT_LOSTCHILD = 0x00000200, 00139 [ helpstring("object has been referenced")] 00140 OBJEVENT_REFERENCED = 0x00000400, 00141 [ helpstring("object has been connected")] 00142 OBJEVENT_CONNECTED = 0x00000800, 00143 [ helpstring("object has been included in set")] 00144 OBJEVENT_SETINCLUDED= 0x00001000, 00145 [ helpstring("object reference has been released")] 00146 OBJEVENT_REFRELEASED= 0x00002000, 00147 [ helpstring("object has been disconnected")] 00148 OBJEVENT_DISCONNECTED= 0x00004000, 00149 [ helpstring("object has been excluded from set")] 00150 OBJEVENT_SETEXCLUDED= 0x00008000, 00151 [ helpstring("object has been marked readonly")] 00152 OBJEVENT_MARKEDRO = 0x00010000, 00153 [ helpstring("object has been marked readwrite (readonly flag has been removed)")] 00154 OBJEVENT_MARKEDRW = 0x00020000, 00155 00156 [ helpstring("user event bitfield, user events should fall into this range")] 00157 OBJEVENT_USERBITS = 0x00FF0000, 00158 [ helpstring("user event: GME open model")] 00159 OBJEVENT_OPENMODEL = 0x00080000, 00160 [ helpstring("user event: GME object selected")] 00161 OBJEVENT_SELECT = 0x00100000, 00162 [ helpstring("user event: GME object deselected")] 00163 OBJEVENT_DESELECT = 0x00200000, 00164 [ helpstring("user event: mouse over GME object")] 00165 OBJEVENT_MOUSEOVER = 0x00400000, 00166 [ helpstring("user event: GME close model")] 00167 OBJEVENT_CLOSEMODEL = 0x00800000, 00168 } objectevent_enum; 00169 00170 typedef enum objectstatus_enum { 00171 [ helpstring("method Create (call when nothing is open)")] OBJECT_EXISTS, 00172 OBJECT_DELETED, 00173 OBJECT_ZOMBIE, 00174 } objectstatus_enum; 00175 00176 // Used with MgaProject::Preferences() 00177 00178 typedef enum preference_flags { 00179 MGAPREF_NODUPLICATENAMES = 0x00000001, // make sure, names are never duplicated 00180 MGAPREF_NAMENEWOBJECTS = 0x00000002, // assign kind/rolename to new objects 00181 MGAPREF_IGNORECONNCHECKS = 0x00000004, // do not complain on partially connected simple connections 00182 MGAPREF_FREEINSTANCEREFS = 0x00000008, // do not bind refs in subtypes/instances to successors of ref target in basetype 00183 MGAPREF_RELAXED_RDATTRTYPES = 0x00000010, // attributes may be read as types other than the real type 00184 MGAPREF_RELAXED_WRATTRTYPES = 0x00000020, // attributes may be written as types other than the real type 00185 MGAPREF_MANUAL_RELIDS = 0x00000040, // relid-s are assigned manually 00186 MGAPREF_NO_NESTED_TX = 0x00000080 // don't use nested transactions, as they are very slow. If an MGA operation fails, the entire transaction must be aborted. 00187 } preference_flags; 00188 00189 00190 // Used with MgaProject::OperationsMask() 00191 // Affected operations: MgaModel::DeriveFCOs, MgaFolder::DeriveRootObject, 00192 // *::CopyFCOs, *::MoveFCOs, MgaObject::DestroyObject 00193 00194 // The operationsmask consists of 3 bytes, which individually control reference, connection and set operations 00195 // each byte has space for 3 2-bit opmask codes for relations which are 'internal', 'incoming' or 'outgoing' 00196 // relative to the set of objects primarily affected by the operation (i.e. the objects created, moved or 00197 // deleted, along with their descendants) 00198 // other flags (like MM_FULLDELETE) may occupy the remaining 2 bits 00199 00200 typedef enum opmask_codes { 00201 MM_ERROR = 0, // signal error, abort operation 00202 MM_CLEAR = 1, // clear the relation (and check object validity) 00203 MM_DO = 2, // keep the relation in the resulting object (and check its validity) 00204 00205 MM_FULLDELETE = 0x40 // fully delete objects with deleted/trucated relations 00206 } opmask_codes; 00207 00208 typedef enum opmask_shifts { 00209 MM_REF = 0, 00210 MM_CONN = 8, 00211 MM_SET = 16, 00212 00213 MM_INTERNAL = 0, 00214 MM_INTO = 2, 00215 MM_OUTOF = 4, 00216 } opmask_shifts; 00217 00218 00219 typedef enum componenttype_enum 00220 { 00221 COMPONENTTYPE_NONE = 0x0000, 00222 COMPONENTTYPE_INTERPRETER = 0x0001, 00223 COMPONENTTYPE_ADDON = 0x0002, 00224 COMPONENTTYPE_PLUGIN = 0x0004, 00225 COMPONENTTYPE_ALL = 0x0007, 00226 00227 COMPONENTTYPE_EVENT_BASED = COMPONENTTYPE_ADDON, 00228 COMPONENTTYPE_PARADIGM_INDEPENDENT = 0x0008, 00229 COMPONENTTYPE_EXECENGINE = 0x0010, 00230 COMPONENTTYPE_SCRIPT = 0x0020, 00231 00232 COMPONENTTYPE_SYSREGREF = 0x0080, // used in user registry to reference components in system registry 00233 } componenttype_enum; 00234 00235 typedef enum component_startmode_enum { 00236 GME_MAIN_START = 0, 00237 GME_BROWSER_START = 1, 00238 GME_CONTEXT_START = 2, 00239 GME_EMBEDDED_START = 3, 00240 GME_MENU_START = 16, 00241 GME_BGCONTEXT_START = 18, 00242 GME_ICON_START = 32, 00243 METAMODEL_CHECK_SYNTAX = 101, 00244 CONSTMGR_SHOW_CONSTRAINTS = 102, 00245 GME_SILENT_MODE = 128 00246 } component_startmode_enum; 00247 00248 00249 00250 // MGAERRORTABLE BEGIN take care when editing 00251 typedef enum mgaerrors { 00252 // library behavior 00253 [helpstring("This method is not yet implemented")] 00254 E_MGA_NOT_IMPLEMENTED = 0x87650000, 00255 [helpstring("This mode of operation is not supported")] 00256 E_MGA_NOT_SUPPORTED = 0x87650001, 00257 00258 00259 // module, paradigm, component error 00260 [helpstring("MGA data structure conflict: error or incompatibility")] 00261 E_MGA_MODULE_INCOMPATIBILITY = 0x87650010, 00262 [helpstring("The paradigm is not registered")] 00263 E_MGA_PARADIGM_NOTREG = 0x87650011, 00264 [helpstring("The paradigm is invalid")] 00265 E_MGA_PARADIGM_INVALID = 0x87650012, 00266 [helpstring("Some addons cannot be loaded/initialized")] 00267 E_MGA_COMPONENT_ERROR = 0x87650013, 00268 00269 [helpstring("Inconsistent data in database metainfo violated")] 00270 E_MGA_DATA_INCONSISTENCY = 0x87650021, 00271 [helpstring("Meta incompatibility")] 00272 E_MGA_META_INCOMPATIBILITY = 0x87650022, 00273 00274 00275 // project status 00276 [helpstring("Project must be closed")] 00277 E_MGA_PROJECT_OPEN = 0x87650031, 00278 [helpstring("Project must be open")] 00279 E_MGA_PROJECT_NOT_OPEN = 0x87650032, 00280 [helpstring("Database is in read-only mode")] 00281 E_MGA_READ_ONLY_ACCESS = 0x87650033, 00282 [helpstring("Object is unknown in this territory")] 00283 E_MGA_NOT_IN_TERRITORY = 0x87650034, 00284 [helpstring("Operation must execute within transaction")] 00285 E_MGA_NOT_IN_TRANSACTION = 0x87650035, 00286 [helpstring("The project is already in transaction" )] 00287 E_MGA_ALREADY_IN_TRANSACTION = 0x87650036, 00288 [helpstring("This transaction must be aborted" )] 00289 E_MGA_MUST_ABORT = 0x87650037, 00290 [helpstring("Territory/AddOn already destroyed")] 00291 E_MGA_TARGET_DESTROYED = 0x87650038, 00292 00293 00294 [helpstring("This is not the callee object's project")] 00295 E_MGA_FOREIGN_PROJECT = 0x87650041, 00296 [helpstring("Object does not belong to this project")] 00297 E_MGA_FOREIGN_OBJECT = 0x87650042, 00298 00299 // object status 00300 [helpstring("The object is deleted partially inaccessible")] 00301 E_MGA_OBJECT_DELETED = 0x87650051, 00302 [helpstring("The object is deleted and fully inaccessible")] 00303 E_MGA_OBJECT_ZOMBIE = 0x87650052, 00304 [helpstring("The project for this (sub)object has been destroyed")] 00305 E_MGA_ZOMBIE_NOPROJECT = 0x87650053, 00306 [helpstring("The project for this (sub)object has been closed")] 00307 E_MGA_ZOMBIE_CLOSED_PROJECT = 0x87650054, 00308 00309 00310 // method call arguments 00311 [helpstring("invalid argument")] 00312 E_MGA_INVALID_ARG = 0x87650060, 00313 [helpstring("argument out of range")] 00314 E_MGA_ARG_RANGE = 0x87650061, 00315 [helpstring("NULL Input COM pointer")] 00316 E_MGA_INPTR_NULL = 0x87650062, 00317 [helpstring("Nonempty COM pointer supplied for output")] 00318 E_MGA_OUTPTR_NONEMPTY = 0x87650063, 00319 [helpstring("NULL output COM pointer address")] 00320 E_MGA_OUTPTR_NULL = 0x87650064, 00321 00322 00323 [helpstring("Search by name failed")] 00324 E_MGA_NAME_NOT_FOUND = 0x87650070, 00325 [helpstring("The operation caused name uniqueness conflict")] 00326 E_MGA_NAME_DUPLICATE = 0x87650071, 00327 [helpstring("The operation caused meta violation for object %o")] 00328 E_MGA_META_VIOLATION = 0x87650072, 00329 [helpstring("Object cannot be changed")] 00330 E_MGA_NOT_CHANGEABLE = 0x87650073, 00331 [helpstring("Operation refused due to the state of existing data")] 00332 E_MGA_OP_REFUSED = 0x87650074, 00333 [helpstring("Object belongs to a lib image")] 00334 E_MGA_LIBOBJECT = 0x87650075, 00335 00336 00337 [helpstring("Unknown attribute specified")] 00338 E_META_INVALIDATTR = 0x87650080, 00339 [helpstring("Unknown aspect specified" )] 00340 E_META_INVALIDASPECT = 0x87650081, 00341 [helpstring("Access method conflicts with attribute type")] 00342 E_MGA_ACCESS_TYPE = 0x87650082, 00343 [helpstring("Invalid value for enum attr")] 00344 E_MGA_BAD_ENUMVALUE = 0x87650083, 00345 00346 [helpstring("Reference %o is used for connections")] 00347 E_MGA_REFPORTS_USED = 0x87650131, 00348 [helpstring("Node is not a physical, but inherited")] 00349 E_MGA_VIRTUAL_NODE = 0x87650136, 00350 [helpstring("Bad GME position read/written")] 00351 E_MGA_BAD_POSITIONVALUE = 0x87650137, 00352 [helpstring("Operation not allowed for root FCOs")] 00353 E_MGA_ROOTFCO = 0x87650138, 00354 [helpstring("Operation not allowed for non-root FCOs")] 00355 E_MGA_NOT_ROOTOBJECT = 0x87650138, 00356 [helpstring("Collection parameter counts must match")] 00357 E_MGA_BAD_COLLENGTH = 0x87650140, 00358 [helpstring("Bad/NULL metarole or metapart")] 00359 E_MGA_INVALID_ROLE = 0x87650142, 00360 [helpstring("Object ID format error")] 00361 E_MGA_BAD_ID = 0x87650143, 00362 [helpstring("Non-root object, or derived into itself")] 00363 E_MGA_NOT_DERIVABLE = 0x87650144, 00364 [helpstring("%o is not a member in set")] 00365 E_MGA_OBJECT_NOT_MEMBER = 0x87650145, 00366 [helpstring("%o is not in a connectible position")] 00367 E_MGA_NOT_CONNECTIBLE = 0x87650146, 00368 [helpstring("Role not specified")] 00369 E_MGA_NO_ROLE = 0x87650147, 00370 [helpstring("Connrole allowed number exceeded for %o")] 00371 E_MGA_CONNROLE_USED = 0x87650148, 00372 [helpstring("Object is not derived")] 00373 E_MGA_NOT_DERIVED = 0x87650149, 00374 [helpstring("Object is not an instance")] 00375 E_MGA_NOT_INSTANCE = 0x87650150, 00376 [helpstring("Object is a type")] 00377 E_MGA_INSTANCE = 0x87650151, 00378 [helpstring("Object %o specified is not a reference")] 00379 E_MGA_REFERENCE_EXPECTED = 0x87650152, 00380 [helpstring("MgaFilter property format error")] 00381 E_MGA_FILTERFORMAT = 0x87650153, 00382 [helpstring("Cannot generate a unique value")] 00383 E_MGA_GEN_OUT_OF_SPACE = 0x87650154, 00384 [helpstring("Invalid reference target")] 00385 E_MGA_INVALID_TARGET = 0x87650155, 00386 [helpstring("Derive chain too long")] 00387 E_MGA_LONG_DERIVCHAIN = 0x87650156, 00388 [helpstring("Invalid changes in library")] 00389 E_MGA_LIB_DIFF = 0x87650157, 00390 00391 [helpstring("Invalid event mask value")] 00392 E_MGA_BAD_MASKVALUE = 0x87650170, 00393 [helpstring("Constraint violation")] 00394 E_MGA_CONSTRAINT_VIOLATION = 0x87657FFF, 00395 00396 [helpstring("Errcode out of errcode range")] 00397 E_MGA_ERRCODE_ERROR = 0x87658000 00398 00399 } mgaerrors; 00400 // MGAERRORTABLE END 00401 00402 [ 00403 object, 00404 uuid(270B4F92-B17C-11D3-9AD1-00AA00B6FE26), 00405 dual, 00406 helpstring("IMgaProject Interface"), 00407 pointer_default(unique) 00408 ] 00409 interface IMgaProject : IDispatch 00410 { 00411 // Open, close et al. 00412 [ helpstring("method Create (call when nothing is open)")] HRESULT Create([in]BSTR projectname, [in] BSTR paradigmname); 00413 [ helpstring("method CreateEx (call when nothing is open)")] HRESULT CreateEx([in]BSTR projectname, [in] BSTR paradigmname, [in] VARIANT paradigmGUID); 00414 00415 [ helpstring("method Open (call when nothing is open)")] HRESULT Open([in] BSTR projectname,[out, defaultvalue(0)] VARIANT_BOOL *ro_mode); 00416 [ helpstring("method OpenEx (call when nothing is open)")] 00417 // paradigmGUID==true means open with the currently-registered paradigm 00418 HRESULT OpenEx([in] BSTR projectname, [in] BSTR paradigmname, [in] VARIANT paradigmGUID); 00419 [ helpstring("method Close (call outside transaction)")] HRESULT Close([in, defaultvalue(0)] VARIANT_BOOL abort); 00420 [ helpstring("method Save (call when outside transaction)")] HRESULT Save([in, defaultvalue("")] BSTR save_as_conn, [in, defaultvalue(0)] VARIANT_BOOL keepoldname); 00421 00422 [ helpstring("method CheckLocks (call when nothing is open)")] 00423 HRESULT CheckLocks([in] BSTR filename, [in, defaultvalue((VARIANT_BOOL)-1)] VARIANT_BOOL clearlocks); 00424 00425 [propput, helpstring("property Preferences (call anytime)")] HRESULT Preferences([in] long prefmask); 00426 [propget, helpstring("property Preferences (call anytime)")] HRESULT Preferences([out,retval] long* prefmask); 00427 [propput, helpstring("property OperationsMask (call anytime)")] HRESULT OperationsMask([in] long opmask); 00428 [propget, helpstring("property OperationsMask (call anytime)")] HRESULT OperationsMask([out,retval] long* opmask); 00429 00430 // Transactions, territory, undo/redo 00431 [ helpstring("method CreateTerritory (call outside transaction)")] 00432 HRESULT CreateTerritory([in] IMgaEventSink *handler, [out] IMgaTerritory **terr, [in, defaultvalue(0)] IMgaEventSink *rwhandler); 00433 [ helpstring("method CreateAddOn (call outside transaction)")] HRESULT CreateAddOn([in] IMgaEventSink *handler, [out] IMgaAddOn **addon); 00434 00435 [ propget, helpstring("property AddOns")] 00436 HRESULT AddOns([out, retval] IMgaAddOns **addons); 00437 [ propget, helpstring("property Territories")] 00438 HRESULT Territories([out, retval] IMgaTerritories **terrs); 00439 [ helpstring("property EnableAllAutoAddOns (by default auto addon loading disabled)")] 00440 HRESULT EnableAutoAddOns([in] VARIANT_BOOL bEnable); 00441 [ propget, helpstring("property AddOnComponents")] 00442 HRESULT AddOnComponents([out, retval] IMgaComponents **comps); 00443 [ propget, helpstring("property ActiveTerritory: the one which opened a transaction")] 00444 HRESULT ActiveTerritory([out, retval] IMgaTerritory **aterr); 00445 00446 [ helpstring("method BeginTransaction ")] 00447 HRESULT BeginTransaction([in] IMgaTerritory *terr, 00448 [in, defaultvalue(TRANSACTION_GENERAL)] transactiontype_enum mode); 00449 [ helpstring("method BeginTransactionInNewTerr with Territory creation")] 00450 HRESULT BeginTransactionInNewTerr([in, defaultvalue(TRANSACTION_GENERAL)] transactiontype_enum mode, [out, retval] IMgaTerritory **terr); 00451 00452 [ propget, helpstring("property ProjectStatus mask bits: bit 0 set:project is open. bit 2 set: project has changed. bit 3 set: in transaction. bit 4 set: transaction is read only. bit 31 set: error state")] 00453 HRESULT ProjectStatus([out, retval] long *stat); 00454 00455 [ helpstring("method Notify: Send global notification")] HRESULT Notify([in] globalevent_enum event); 00456 [ helpstring("method CommitTransaction")] HRESULT CommitTransaction(); 00457 [ helpstring("method AbortTransaction")] HRESULT AbortTransaction(); 00458 00459 [ helpstring("method CheckSupress")] HRESULT CheckSupress([in] VARIANT_BOOL mode); 00460 [ helpstring("method Undo (call outside transaction)")] HRESULT Undo(); 00461 [ helpstring("method Redo (call outside transaction)")] HRESULT Redo(); 00462 [ helpstring("method UndoRedoSize")] HRESULT UndoRedoSize([out] short *undosize, [out] short *redosize); 00463 [ helpstring("method FlushUndoQueue")] HRESULT FlushUndoQueue(); 00464 00465 [ helpstring("method UpdateSourceControlInfo, for users to ask the XML backend to update its current status")] 00466 HRESULT UpdateSourceControlInfo([in] BSTR p_optionalID); 00467 00468 [ helpstring( "method SourceControlActiveUsers, for showing a dialog with all potential commiters of a project")] 00469 HRESULT SourceControlActiveUsers(); 00470 00471 [ helpstring( "method SourceControlObjectOwner, for showing a dialog with the owner of a locked object")] 00472 HRESULT SourceControlObjectOwner( [in] BSTR p_optionalID); 00473 00474 00475 // Access to meta and project trees 00476 [propget, helpstring("property RootMeta: access root of meta tree")] 00477 HRESULT RootMeta([out, retval] IMgaMetaProject **pVal); 00478 [propget, helpstring("property RootFolder: access root of model tree")] 00479 HRESULT RootFolder([out, retval] IMgaFolder **pVal); 00480 00481 // Global search on model tree 00482 [ helpstring("method CreateFilter")] HRESULT CreateFilter([out, retval] IMgaFilter **filter); 00483 [ helpstring("method AllFCOs")] HRESULT AllFCOs([in] IMgaFilter *filter, [out, retval] IMgaFCOs **returnset); 00484 [ helpstring("method GetObjectByID")] HRESULT GetObjectByID([in] ID_type id, [out, retval] IMgaObject **pVal); 00485 [ helpstring("method GetFCOByID")] HRESULT GetFCOByID([in] ID_type id, [out, retval] IMgaFCO **pVal); 00486 00487 [ helpstring("method GetFCOsByName")] HRESULT GetFCOsByName([in] BSTR name, [out, retval] IMgaFCOs **pVal); 00488 [ helpstring("method GetFolderByPath")] HRESULT GetFolderByPath([in] BSTR path, [out, retval] IMgaFolder **pVal); 00489 [ helpstring("method EnumExtReferences: Get all ref objects referring from outside to this tree")] 00490 HRESULT EnumExtReferences([in] IMgaFCOs *fcos, [out, retval] IMgaFCOs **pVal); 00491 // Delimiter in the path is the slash character: '/' 00492 // searches based on name and kind: "/@MyFolder|kind=OneFolder/@MySubFolder|kind=AnotherFolder" (the project or root folder name must not be included) 00493 // or based on plain name: "/MyFolder/MySubFolder" 00494 // or based on relid: "/#1/#3" 00495 // these may be mixed like: "/@MyFolder|kind=OneFolder|relpos=1/#2" which means that look for MyFolder, then select its child with Relid = 2 00496 // incoming path may contain 'misleading' relpos tokens as well: /@MyFolder|kind=OneFolder|relpos=1/@MySubFolder|kind=AnotherFolder|relpos=2" these are disregarded 00497 // If several objects are found, NULL is returned 00498 // 00499 // FCO::get_ObjectByPath ignores the leading '/' 00500 [ propget, helpstring("property ObjectByPath: path may contain /@names or /RelID-s")] 00501 HRESULT ObjectByPath([in] BSTR path, [out, retval] IMgaObject **pVal); 00502 [ propget, helpstring("property nthObjectByPath, returns the nth samename object if path not unique")] 00503 HRESULT NthObjectByPath([in] long n_th, [in] BSTR path, [out, retval] IMgaObject **pVal); 00504 00505 [ helpstring("method GetTopLibraries")] HRESULT GetTopLibraries( [in] BSTR dispGuid, [out, retval] IMgaFolders **returnset); 00506 00507 // Project properties 00508 [helpstring("method GetStatistics")] HRESULT GetStatistics([out, retval] BSTR *statstr); 00509 [propget, helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal); 00510 [propput, helpstring("property Name")] HRESULT Name([in] BSTR newval); 00511 [propget, helpstring("property Version")] HRESULT Version([out, retval] BSTR *pVal); 00512 [propput, helpstring("property Version")] HRESULT Version([in] BSTR newval); 00513 [propget, helpstring("property MetaName")] HRESULT MetaName([out, retval] BSTR *pVal); 00514 [propget, helpstring("property MetaGUID")] HRESULT MetaGUID([out, retval] VARIANT *pVal); 00515 [propget, helpstring("property MetaVersion")] HRESULT MetaVersion([out, retval] BSTR *pVal); 00516 [propget, helpstring("property GUID")] HRESULT GUID([out, retval] VARIANT *pVal); 00517 [propput, helpstring("property GUID")] HRESULT GUID([in] VARIANT newVal); 00518 [propget, helpstring("property CreateTime")] HRESULT CreateTime([out, retval] BSTR *pVal); 00519 [propget, helpstring("property ChangeTime")] HRESULT ChangeTime([out, retval] BSTR *pVal); 00520 [propget, helpstring("property Author")] HRESULT Author([out, retval] BSTR *pVal); 00521 [propput, helpstring("property Author")] HRESULT Author([in] BSTR newval); 00522 [propget, helpstring("property Comment")] HRESULT Comment([out, retval] BSTR *pVal); 00523 [propput, helpstring("property Comment")] HRESULT Comment([in] BSTR newVal); 00524 00525 [propget, helpstring("property ProjectConnStr")] HRESULT ProjectConnStr([out, retval] BSTR *pVal); 00526 [propget, helpstring("property ParadigmConnStr")] HRESULT ParadigmConnStr([out, retval] BSTR *pVal); 00527 00528 [propget, helpstring("property MetaObj: get the metaobject for a reference")] 00529 HRESULT MetaObj([in] metaref_type mref, [out, retval] IMgaMetaBase **pVal); 00530 [helpstring("getter for property MetaObj: get the metaobject for a reference")] 00531 HRESULT GetMetaObjDisp([in] metaref_type mref, [out, retval] IMgaMetaBase **pVal); 00532 00533 [helpstring("method QueryProjectInfo (call anytime)")] 00534 HRESULT QueryProjectInfo([in] BSTR projectname, [out] long *mgaversion, 00535 [out] BSTR *paradigmname, 00536 [out] BSTR *paradigmversion, 00537 [out] VARIANT *paradigmGUID, 00538 [out] VARIANT_BOOL *ro_mode); 00539 00540 [ propget, helpstring("property Clients")] HRESULT Clients([out, retval] IMgaClients **clients); 00541 [ helpstring("method RegisterClient")] 00542 HRESULT RegisterClient([in] BSTR name, [in] IDispatch *OLEServer, [out, retval] IMgaClient **client); 00543 [ helpstring("method GetClientByName")] HRESULT GetClientByName([in] BSTR name, [out, retval] IMgaClient **client); 00544 00545 [ helpstring("method CreateTerritoryWithoutSink (call outside transaction)")] 00546 HRESULT CreateTerritoryWithoutSink([out] IMgaTerritory **terr); 00547 }; 00548 00549 [ 00550 object, 00551 uuid(32D1F3A5-D276-11D3-9AD5-00AA00B6FE26), 00552 oleautomation, 00553 helpstring("IMgaEventSink: to be implemented by the client to be called back"), 00554 pointer_default(unique) 00555 ] 00556 interface IMgaEventSink : IUnknown 00557 { 00558 [ helpstring("GlobalEvent")] HRESULT GlobalEvent([in] globalevent_enum event); 00559 [ helpstring("ObjectEvent")] HRESULT ObjectEvent([in] IMgaObject * obj, [in] unsigned long eventmask, [in] VARIANT v); 00560 }; 00561 00562 [ 00563 object, 00564 uuid(80A6D661-D411-11D3-9AD5-00AA00B6FE26), 00565 dual, 00566 helpstring("IMgaAddOn Interface"), 00567 pointer_default(unique) 00568 ] 00569 interface IMgaAddOn : IDispatch 00570 { 00571 [ propget, helpstring("property Priority")] HRESULT Priority([out, retval] long *pVal); 00572 [ propput, helpstring("property Priority")] HRESULT Priority([in] long newVal); 00573 [ propput, helpstring("property EventMask (defaults to ALL)")] HRESULT EventMask([in] unsigned long eventmask); 00574 [ helpstring("method Destroy: disable further callbacks to this addon")] HRESULT Destroy(); 00575 00576 [ propget, helpstring("property Project")] HRESULT Project([out, retval] IMgaProject **pVal); 00577 [ helpstring("Check if object belongs to a project")] HRESULT CheckProject([in] IMgaProject *p_project); 00578 }; 00579 00580 00581 00582 [ 00583 object, 00584 uuid(11BB02D9-2E2C-11D3-B36D-0060082DF884), 00585 oleautomation, 00586 helpstring("IMgaComponent Interface"), 00587 pointer_default(unique) 00588 00589 ] 00590 interface IMgaComponent : IUnknown 00591 { 00592 [helpstring ("method Invoke, selectedobjs may be NULL")] 00593 HRESULT Invoke([in] IMgaProject *project, [in] IMgaFCOs *selectedobjs, [in] long param); 00594 [helpstring("method Initialize")] 00595 HRESULT Initialize(IMgaProject *p); 00596 [helpstring("method Enable")] 00597 HRESULT Enable(VARIANT_BOOL newVal); 00598 [propget, helpstring("property InteractiveMode")] 00599 HRESULT InteractiveMode([out, retval] VARIANT_BOOL * enabled); 00600 [propput, helpstring("property InteractiveMode")] 00601 HRESULT InteractiveMode([in] VARIANT_BOOL enabled); 00602 [propget, helpstring("property ComponentName")] 00603 HRESULT ComponentName([out, retval] BSTR *pVal); 00604 [propget, helpstring("property ComponentType")] 00605 HRESULT ComponentType([out, retval] componenttype_enum *t); 00606 [propget, helpstring("property Paradigm")] 00607 HRESULT Paradigm([out, retval] BSTR *pVal); 00608 }; 00609 00610 00611 [ 00612 object, 00613 uuid(11BB44D9-2E2C-11D3-B36D-0060082DF884), 00614 oleautomation, 00615 helpstring("IMgaComponentEx Interface"), 00616 pointer_default(unique) 00617 00618 ] 00619 interface IMgaComponentEx : IMgaComponent 00620 { 00621 [helpstring ("method InvokeEx, responsible for opening transaction. Selectedobjs may be NULL")] 00622 HRESULT InvokeEx([in] IMgaProject *project, [in] IMgaFCO *currentobj, [in,out] IMgaFCOs *selectedobjs, [in] long param); 00623 [helpstring ("method ObjectsInvokeEx, responsible for opening transaction. Selectedobjs may be NULL")] 00624 HRESULT ObjectsInvokeEx([in] IMgaProject *project, [in] IMgaObject *currentobj, [in,out] IMgaObjects *selectedobjs, [in] long param); 00625 [propget, helpstring("property ComponentProgID")] 00626 HRESULT ComponentProgID([out, retval] BSTR *pVal); 00627 [propput, helpstring("property ComponentParameter")] 00628 HRESULT ComponentParameter([in] BSTR name, [in] VARIANT newVal); 00629 [propget, helpstring("property ComponentParameter")] 00630 HRESULT ComponentParameter([in] BSTR name, [out, retval] VARIANT *pVal); 00631 }; 00632 00633 [ 00634 object, 00635 uuid(F07EE1A2-2D53-449b-A2DA-45A1A9110E53), 00636 dual, 00637 helpstring("IMgaClient Interface"), 00638 pointer_default(unique) 00639 ] 00640 interface IMgaClient : IDispatch 00641 { 00642 [ propget, helpstring("property Name")] HRESULT Name([out, retval] BSTR *pName); 00643 [ propget, helpstring("property OLEServer")] HRESULT OLEServer([out, retval] IDispatch **pServer); 00644 [ propget, helpstring("property Project")] HRESULT Project([out, retval] IMgaProject **pVal); 00645 [ helpstring("method Destroy: remove registered Client")] HRESULT Destroy(); 00646 }; 00647 00648 00649 00650 00651 /* 00652 [ 00653 uuid(11B994D9-2E2C-11D3-B36D-0060082DF886), 00654 helpstring("IMgaDispComponent Interface"), 00655 00656 ] 00657 dispinterface IMgaDispComponent { 00658 interface IMgaComponentEx; 00659 }; 00660 */ 00661 00662 [ 00663 uuid(52871786-9C85-408f-A7D1-AE507905A540), 00664 helpstring("Dispatch interface for IMgaComponents") 00665 ] 00666 dispinterface IMgaComponentDispatch 00667 { 00668 properties: 00669 [id(1)] VARIANT_BOOL InteractiveMode; 00670 [id(2)] BSTR ComponentName; 00671 [id(3)] LONG ComponentType; 00672 [id(4)] BSTR Paradigm; 00673 [id(5)] BSTR ComponentProgID; 00674 [id(6)] LONG Version; 00675 00676 methods: 00677 [id(20)] void Invoke(IMgaProject *project, IMgaFCOs *selectedobjs, LONG param); 00678 [id(21)] void Initialize(IMgaProject *p); 00679 [id(22)] void Enable(VARIANT_BOOL newVal); 00680 [id(23)] void InvokeEx(IMgaProject *project, IMgaFCO *currentobj, IMgaFCOs *selectedobjs, LONG param); 00681 [id(24)] void ObjectsInvokeEx(IMgaProject *project, IMgaObject *currentobj, IMgaObjects *selectedobjs, LONG param); 00682 [id(25)] void SetComponentParameter(BSTR name, VARIANT newVal); 00683 [id(26)] VARIANT GetComponentParameter(BSTR name); 00684 }; 00685 00686 [ 00687 object, 00688 uuid(32D1F3A3-D276-11D3-9AD5-00AA00B6FE26), 00689 dual, 00690 helpstring("IMgaTerritory Interface"), 00691 pointer_default(unique) 00692 ] 00693 interface IMgaTerritory : IDispatch 00694 { 00695 [ helpstring("method Flush: empty the territory")] HRESULT Flush(); 00696 [ helpstring("method Destroy: empty and destroy the territory")] HRESULT Destroy(); 00697 [ propput, helpstring("property EventMask (defaults to ALL)")] HRESULT EventMask([in] unsigned long eventmask); 00698 [ propput, helpstring("property RWEventMask (defaults to NONE)")] HRESULT RWEventMask([in] unsigned long eventmask); 00699 [ helpstring("Associate object with user data")] HRESULT Associate([in] IMgaObject *obj, [in] VARIANT userdata); 00700 [ helpstring("property OpenObj")] HRESULT OpenObj([in] IMgaObject *obj, [in, out] IMgaObject **newobj); 00701 [ helpstring("property OpenFCO")] HRESULT OpenFCO([in] IMgaFCO *obj, [in, out] IMgaFCO **newobj); 00702 [ helpstring("property OpenFCOs")] HRESULT OpenFCOs([in] IMgaFCOs *obj, [in, out] IMgaFCOs **newobj); 00703 [ helpstring("property CloseObj")] HRESULT CloseObj([in] IMgaObject *obj); 00704 00705 [ propget, helpstring("property Project")] HRESULT Project([out, retval] IMgaProject **pVal); 00706 [ helpstring("Check if object belongs to a project")] HRESULT CheckProject([in] IMgaProject *project); 00707 [ helpstring("Set Namespace")] HRESULT SetNamespace( [in] BSTR pNmsp); 00708 [ helpstring("Get Namespace")] HRESULT GetNamespace( [out, retval] BSTR * pNmsp); 00709 }; 00710 00711 [ 00712 object, 00713 uuid(32D1F3A7-D276-11D3-9AD5-00AA00B6FE26), 00714 dual, 00715 helpstring("IMgaObject Interface: an empty class used as a common base class for Mga objects"), 00716 pointer_default(unique) 00717 ] 00718 interface IMgaObject : IDispatch { 00719 [propget, helpstring("property Status: always available")] HRESULT Status([out, retval] long *p); 00720 [propget, helpstring("property IsWritable")] HRESULT IsWritable([out, retval] VARIANT_BOOL *p); 00721 [propget, helpstring("property ID")] HRESULT ID([out, retval] ID_type *pVal); 00722 [propget, helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal); 00723 [propput, helpstring("property Name")] HRESULT Name([in] BSTR newVal); 00724 [propget, helpstring("property AbsPath")] HRESULT AbsPath([out, retval] BSTR *pVal); 00725 [propget, helpstring("property MetaBase")] HRESULT MetaBase([out, retval] IMgaMetaBase **pVal); 00726 [propget, helpstring("property ObjType")] HRESULT ObjType([out, retval] objtype_enum *pVal); 00727 [propget, helpstring("property Project")] HRESULT Project([out, retval] IMgaProject **pVal); 00728 [propget, helpstring("property Territory")] HRESULT Territory([out, retval] IMgaTerritory **pVal); 00729 [propget, helpstring("property IsEqual")] HRESULT IsEqual([in] IMgaObject *o, [out, retval] VARIANT_BOOL *pVal); 00730 [helpstring("getter for property IsEqual")] HRESULT GetIsEqualDisp([in] IMgaObject *o, [out, retval] VARIANT_BOOL *pVal); 00731 [helpstring("method GetParent")] HRESULT GetParent([out] IMgaObject **pVal, [out, defaultvalue(0)] objtype_enum *objtype); 00732 00733 [helpstring("Check if object belongs to a project")] HRESULT CheckProject([in] IMgaProject *project); 00734 [helpstring("method DestroyObject")] HRESULT DestroyObject(); 00735 [helpstring("method Open: mode does not define access, sets locking type only (subsequents Open()-s are legal)")] 00736 HRESULT Open([in, defaultvalue(OPEN_READ)] openmode mode); 00737 [helpstring("method Close: unlock object and discard from territory")] HRESULT Close(); 00738 00739 [helpstring("Associate: always available")] HRESULT Associate([in] VARIANT userdata); 00740 [propget, helpstring("Current Association value: always available")] HRESULT CurrentAssociation([out,retval] VARIANT *userdata); 00741 [helpstring("method SendEvent: see objectevent_enum definition for mask bit values")] 00742 HRESULT SendEvent([in] long mask); 00743 [propget, helpstring("property RelID")] HRESULT RelID([out, retval] long *pVal); 00744 [propput, helpstring("property RelID")] HRESULT RelID([in] long newVal); 00745 [propget, helpstring("property IsLibObject")] 00746 HRESULT IsLibObject([out, retval] VARIANT_BOOL *pVal); 00747 00748 [helpstring("method Check")] 00749 HRESULT Check(); 00750 [helpstring("method CheckTree")] 00751 HRESULT CheckTree(); 00752 [propput, helpstring("property Exempt")] 00753 HRESULT Exempt([in] VARIANT_BOOL newVal); 00754 [propget, helpstring("property Exempt")] 00755 HRESULT Exempt([out, retval] VARIANT_BOOL *pVal); 00756 00757 [propget, helpstring("property ChildObjects")] 00758 HRESULT ChildObjects([out, retval] IMgaObjects **pVal); 00759 [propget, helpstring("property ChildObjectByRelID")] 00760 HRESULT ChildObjectByRelID([in] long relid, [out, retval] IMgaObject **pVal); 00761 [helpstring("getter for property ChildObjectByRelID")] 00762 HRESULT GetChildObjectByRelIDDisp([in] long relid, [out, retval] IMgaObject **pVal); 00763 [ propget, helpstring("property ObjectByPath: path may contain /@names or /RelID-s")] 00764 HRESULT ObjectByPath([in] BSTR path, [out, retval] IMgaObject **pVal); 00765 [helpstring("getter for property ObjectByPath: path may contain /@names or /RelID-s")] 00766 HRESULT GetObjectByPathDisp([in] BSTR path, [out, retval] IMgaObject **pVal); 00767 [ propget, helpstring("property nthObjectByPath, returns the nth samename object if path not unique")] 00768 HRESULT NthObjectByPath([in] long n_th, [in] BSTR path, [out, retval] IMgaObject **pVal); 00769 [helpstring("getter for property nthObjectByPath, returns the nth samename object if path not unique")] 00770 HRESULT GetNthObjectByPathDisp([in] long n_th, [in] BSTR path, [out, retval] IMgaObject **pVal); 00771 [helpstring("make an object and its subelements ReadOnly/ReadWrite")] 00772 HRESULT PutReadOnlyAccessWithPropagate( [in] VARIANT_BOOL pReadOnly ); 00773 [helpstring("make an object ReadOnly/ReadWrite")] 00774 HRESULT PutReadOnlyAccess( [in] VARIANT_BOOL pReadOnly ); 00775 [helpstring("ask about access rights to an object")] 00776 HRESULT HasReadOnlyAccess( [out, retval] VARIANT_BOOL* pReadOnly ); 00777 00778 [ helpstring("GetGuid")] HRESULT GetGuid([in, out] long* l1, [in, out] long* l2, [in, out] long* l3, [in, out] long* l4); 00779 [ helpstring("PutGuid")] HRESULT PutGuid([in] long l1, [in] long l2, [in] long l3, [in] long l4); 00780 [ helpstring("GetGuid Dispatch compatible")] HRESULT GetGuidDisp([out, retval] BSTR *guid_str); 00781 [ helpstring("PutGuid Dispatch compatible")] HRESULT PutGuidDisp([in] BSTR guid_str); 00782 }; 00783 00784 00785 [ 00786 object, 00787 uuid(270B4F98-B17C-11D3-9AD1-00AA00B6FE26), 00788 dual, 00789 helpstring("IMgaFCO Interface"), 00790 pointer_default(unique) 00791 ] 00792 interface IMgaFCO : IMgaObject 00793 { 00794 [propget, helpstring("property Meta")] HRESULT Meta([out, retval] IMgaMetaFCO **pVal); 00795 00796 [propget, helpstring("property MetaRole")] HRESULT MetaRole([out, retval] IMgaMetaRole **pVal); 00797 00798 [propget, helpstring("property ParentModel (null if root)")] HRESULT ParentModel([out, retval] IMgaModel **pVal); 00799 [propget, helpstring("property ParentFolder (null if non-root)")] HRESULT ParentFolder([out, retval] IMgaFolder **pVal); 00800 00801 00802 [propget, helpstring("property Parts")] HRESULT Parts([out, retval] IMgaParts **pVal); 00803 [propget, helpstring("property Part, NULL if not present in specified aspect")] 00804 HRESULT Part([in] IMgaMetaAspect * asp, [out, retval] IMgaPart **pVal); 00805 [helpstring("getter for property Part, NULL if not present in specified aspect")] 00806 HRESULT GetPartDisp([in] IMgaMetaAspect * asp, [out, retval] IMgaPart **pVal); 00807 [propget, helpstring("property PartByMetaPart")] 00808 HRESULT PartByMetaPart([in] IMgaMetaPart * part, [out, retval] IMgaPart **pVal); 00809 [helpstring("getter for property PartByMetaPart")] 00810 HRESULT GetPartByMetaPartDisp([in] IMgaMetaPart * part, [out, retval] IMgaPart **pVal); 00811 // TODO: GetPartByAspectName([in] BSTR *AspectName, [out, retval] IMgaPart **pVal); 00812 00813 00814 // Style #1: some may like it better 00815 [propget, helpstring("property Attributes: includes virtual attributes")] 00816 HRESULT Attributes([out, retval] IMgaAttributes **pVal); 00817 [propget, helpstring("property Attribute: return an attribute identified by its meta")] 00818 HRESULT Attribute([in] IMgaMetaAttribute *meta, [out, retval] IMgaAttribute **pVal); 00819 [helpstring("getter for property Attribute: return an attribute identified by its meta")] 00820 HRESULT GetAttributeDisp([in] IMgaMetaAttribute *meta, [out, retval] IMgaAttribute **pVal); 00821 00822 // Style #2: probably more convenient attribute access, also faster if an attr is used only once 00823 [propget, id(DISPID_VALUE), helpstring("property AttributeByName")] HRESULT AttributeByName([in] BSTR name, [out, retval] VARIANT *pVal); 00824 [propput, id(DISPID_VALUE), helpstring("property AttributeByName")] HRESULT AttributeByName([in] BSTR name, [in] VARIANT newval); 00825 [helpstring("getter for property AttributeByName")] HRESULT GetAttributeByNameDisp([in] BSTR name, [out, retval] VARIANT *pVal); 00826 [helpstring("setter for property AttributeByName")] HRESULT SetAttributeByNameDisp([in] BSTR name, [in] VARIANT newval); 00827 [propget, helpstring("property StrAttrByName")] HRESULT StrAttrByName([in] BSTR name, [out, retval] BSTR *pVal); 00828 [propput, helpstring("property StrAttrByName")] HRESULT StrAttrByName([in] BSTR name, [in] BSTR newval); 00829 [helpstring("getter for property StrAttrByName")] HRESULT GetStrAttrByNameDisp([in] BSTR name, [out, retval] BSTR *pVal); 00830 [helpstring("setter for property StrAttrByName")] HRESULT SetStrAttrByNameDisp([in] BSTR name, [in] BSTR newval); 00831 [propget, helpstring("property IntAttrByName")] HRESULT IntAttrByName([in] BSTR name, [out, retval] long *pVal); 00832 [propput, helpstring("property IntAttrByName")] HRESULT IntAttrByName([in] BSTR name, [in] long newval); 00833 [helpstring("getter for property IntAttrByName")] HRESULT GetIntAttrByNameDisp([in] BSTR name, [out, retval] long *pVal); 00834 [helpstring("setter for property IntAttrByName")] HRESULT SetIntAttrByNameDisp([in] BSTR name, [in] long newval); 00835 [propget, helpstring("property FloatAttrByName")] HRESULT FloatAttrByName([in] BSTR name, [out, retval] double *pVal); 00836 [propput, helpstring("property FloatAttrByName")] HRESULT FloatAttrByName([in] BSTR name, [in] double newval); 00837 [helpstring("getter for property FloatAttrByName")] HRESULT GetFloatAttrByNameDisp([in] BSTR name, [out, retval] double *pVal); 00838 [helpstring("setter for property FloatAttrByName")] HRESULT SetFloatAttrByNameDisp([in] BSTR name, [in] double newval); 00839 [propget, helpstring("property BoolAttrByName")] HRESULT BoolAttrByName([in] BSTR name, [out, retval] VARIANT_BOOL *pVal); 00840 [propput, helpstring("property BoolAttrByName")] HRESULT BoolAttrByName([in] BSTR name, [in] VARIANT_BOOL newval); 00841 [helpstring("getter for property BoolAttrByName")] HRESULT GetBoolAttrByNameDisp([in] BSTR name, [out, retval] VARIANT_BOOL *pVal); 00842 [helpstring("setter for property BoolAttrByName")] HRESULT SetBoolAttrByNameDisp([in] BSTR name, [in] VARIANT_BOOL newval); 00843 [propget, helpstring("property RefAttrByName")] HRESULT RefAttrByName([in] BSTR name, [out, retval] IMgaFCO **pVal); 00844 [propput, helpstring("property RefAttrByName")] HRESULT RefAttrByName([in] BSTR name, [in] IMgaFCO* newval); 00845 [helpstring("getter for property RefAttrByName")] HRESULT GetRefAttrByNameDisp([in] BSTR name, [out, retval] IMgaFCO **pVal); 00846 [helpstring("setter for property RefAttrByName")] HRESULT SetRefAttrByNameDisp([in] BSTR name, [in] IMgaFCO* newval); 00847 [helpstring("Remove attribute for this object, expose value of base object or default")] 00848 HRESULT ClearAttrByName([in] BSTR name); 00849 00850 00851 [id(0x540), propget, helpstring("property RegistryNode")] 00852 HRESULT RegistryNode([in] BSTR path, [out, retval] IMgaRegNode **pVal); 00853 [helpstring("getter for property RegistryNode")] 00854 HRESULT GetRegistryNodeDisp([in] BSTR path, [out, retval] IMgaRegNode **pVal); 00855 [id(0x541), propget, helpstring("property Registry")] 00856 HRESULT Registry([in, defaultvalue(0)] VARIANT_BOOL virtuals, [out, retval] IMgaRegNodes **pVal); 00857 [helpstring("getter for property Registry")] 00858 HRESULT GetRegistryDisp([in, defaultvalue(0)] VARIANT_BOOL virtuals, [out, retval] IMgaRegNodes **pVal); 00859 [id(0x542), propget, helpstring("property RegistryValue")] 00860 HRESULT RegistryValue([in] BSTR path, [out, retval] BSTR *pVal); 00861 [id(0x542), propput, helpstring("property RegistryValue")] 00862 HRESULT RegistryValue([in] BSTR path, [in] BSTR newval); 00863 [helpstring("getter for property RegistryValue")] 00864 HRESULT GetRegistryValueDisp([in] BSTR path, [out, retval] BSTR *pVal); 00865 [helpstring("setter for property RegistryValue")] 00866 HRESULT SetRegistryValueDisp([in] BSTR path, [in] BSTR newval); 00867 00868 [id(0x544), propget, helpstring("property Constraints")] 00869 HRESULT Constraints([in] VARIANT_BOOL includemeta, [out, retval] IMgaConstraints **pVal); 00870 [helpstring("getter for property Constraints")] 00871 HRESULT GetConstraintsDisp([in] VARIANT_BOOL includemeta, [out, retval] IMgaConstraints **pVal); 00872 [id(0x545), helpstring("method AddConstraint")] 00873 HRESULT AddConstraint([in] IMgaConstraint *constraint); 00874 [id(0x546), helpstring("method DefineConstraint")] 00875 HRESULT DefineConstraint([in] BSTR name, [in] long mask, [in] BSTR expr, [out] IMgaConstraint **nconstraint); 00876 00877 // [ helpstring("method GetBaseType BaseType, ImmediateBase, IsInstance [all may be NULL]")] 00878 // HRESULT GetBaseType([out] IMgaFCO ** basetype, [out] IMgaFCO ** ibase, [out] VARIANT_BOOL *isinst); 00879 [propget, helpstring("property DerivedFrom (returns NULL if object is not derived)")] 00880 HRESULT DerivedFrom([out, retval] IMgaFCO **pVal); 00881 [propget, helpstring("property DerivedObjects")] 00882 HRESULT DerivedObjects([out, retval] IMgaFCOs **pVal); 00883 [propget, helpstring("property Type (succeeds only for instances)")] 00884 HRESULT Type([out, retval] IMgaFCO **pVal); 00885 [propget, helpstring("property BaseType (fails for all instances; returns NULL if object is not derived)")] 00886 HRESULT BaseType([out, retval] IMgaFCO **pVal); 00887 [propget, helpstring("property ArcheType (returns NULL if object is not derived)")] 00888 HRESULT ArcheType([out, retval] IMgaFCO **pVal); 00889 [propget, helpstring("property IsInstance (also returns false for non-derived objects)")] 00890 HRESULT IsInstance([out, retval] VARIANT_BOOL *pVal); 00891 [propget, helpstring("property IsPrimaryDerived (false if derived along with its parent, or if not derived at all)")] 00892 HRESULT IsPrimaryDerived([out, retval] VARIANT_BOOL *pVal); 00893 [ helpstring("method AttachToArcheType")] 00894 HRESULT AttachToArcheType([in] IMgaFCO *newtype, [in] VARIANT_BOOL instance); 00895 [ helpstring("method DetachFromArcheType")] 00896 HRESULT DetachFromArcheType(); 00897 00898 [ helpstring("Get Abspath")] HRESULT GetAbsMetaPath([in, out] BSTR *abspath); 00899 [ helpstring("Get Relpath")] HRESULT GetRelMetaPath([in] IMgaFCO *begfco, [in, out] BSTR *relpath, [in, defaultvalue(0)] IMgaFCOs *refs); 00900 00901 [propget, helpstring("property PartOfConns")] HRESULT PartOfConns([out, retval] IMgaConnPoints **pVal); 00902 [propget, helpstring("property MemberOfSets")] HRESULT MemberOfSets([out, retval] IMgaFCOs **pVal); 00903 [propget, helpstring("property ReferencedBy")] HRESULT ReferencedBy([out, retval] IMgaFCOs **pVal); 00904 00905 00906 [ helpstring("method CreateCollection")] HRESULT CreateCollection([in,out] IMgaFCOs **pVal); 00907 00908 [propget, helpstring("property RootFCO")] 00909 HRESULT RootFCO([out, retval] IMgaFCO **pVal); 00910 }; 00911 /* 00912 [ 00913 object, 00914 uuid(270B4F94-B17C-11D3-9AD1-00AA00B6FE26), 00915 dual, 00916 helpstring("IMgaContainer Interface"), 00917 pointer_default(unique) 00918 ] 00919 00920 interface IMgaContainer : IMgaFCO 00921 { 00922 [propget, helpstring("property ChildFCOs")] HRESULT ChildFCOs([out, retval] IMgaFCOs **pVal); 00923 [propget, helpstring("property ChildFCO")] HRESULT ChildFCO([in] BSTR, [out, retval] IMgaFCO **pVal); 00924 [ helpstring("method GetDescendantFCOs: recursive search")] HRESULT GetDescendantFCOs([in] IMgaFilter*, [out] IMgaFCOs **); 00925 [ helpstring("method GetChildFCOsOfKind: non recursive search")] HRESULT GetChildrenOfKind([in] BSTR, [out] IMgaFCOs **); 00926 }; 00927 */ 00928 00929 [ 00930 object, 00931 uuid(270B4F96-B17C-11D3-9AD1-00AA00B6FE26), 00932 dual, 00933 helpstring("IMgaFolder: these are not really FCO-s, so implement only part of the functions from IMgaFCO!!!"), 00934 pointer_default(unique) 00935 ] 00936 interface IMgaFolder : IMgaObject 00937 { 00938 [propget, helpstring("property MetaFolder")] HRESULT MetaFolder([out, retval] IMgaMetaFolder **pVal); 00939 [propget, helpstring("property ParentFolder")] HRESULT ParentFolder([out, retval] IMgaFolder **pVal); 00940 00941 [propget, helpstring("property ChildFolders")] HRESULT ChildFolders([out, retval] IMgaFolders **pVal); 00942 [ helpstring("method CreateFolder")] HRESULT CreateFolder([in] IMgaMetaFolder *meta, [out, retval] IMgaFolder **nf); 00943 [ helpstring("method CreateRootObject")] HRESULT CreateRootObject([in] IMgaMetaFCO* meta, [out, retval] IMgaFCO **nobj); 00944 [ helpstring("method DeriveRootObject")] HRESULT DeriveRootObject([in] IMgaFCO* base, [in] VARIANT_BOOL instance, [out, retval] IMgaFCO **nobj); 00945 00946 [id(0x540), propget, helpstring("property RegistryNode")] 00947 HRESULT RegistryNode([in] BSTR path, [out, retval] IMgaRegNode **pVal); 00948 [helpstring("getter for property RegistryNode")] 00949 HRESULT GetRegistryNodeDisp([in] BSTR path, [out, retval] IMgaRegNode **pVal); 00950 [id(0x541), propget, helpstring("property Registry")] 00951 HRESULT Registry([in, defaultvalue(0)] VARIANT_BOOL virtuals, [out, retval] IMgaRegNodes **pVal); 00952 [helpstring("getter for property Registry")] 00953 HRESULT GetRegistryDisp([in, defaultvalue(0)] VARIANT_BOOL virtuals, [out, retval] IMgaRegNodes **pVal); 00954 [id(0x542), propget, helpstring("property RegistryValue")] 00955 HRESULT RegistryValue([in] BSTR path, [out, retval] BSTR *pVal); 00956 [helpstring("getter for property RegistryValue")] 00957 HRESULT GetRegistryValueDisp([in] BSTR path, [out, retval] BSTR *pVal); 00958 [id(0x542), propput, helpstring("property RegistryValue")] 00959 HRESULT RegistryValue([in] BSTR path, [in] BSTR newval); 00960 [helpstring("setter for property RegistryValue")] 00961 HRESULT SetRegistryValueDisp([in] BSTR path, [in] BSTR newval); 00962 00963 [id(0x544), propget, helpstring("property Constraints")] 00964 HRESULT Constraints([in] VARIANT_BOOL includemeta, [out, retval] IMgaConstraints **pVal); 00965 [helpstring("getter for property Constraints")] 00966 HRESULT GetConstraintsDisp([in] VARIANT_BOOL includemeta, [out, retval] IMgaConstraints **pVal); 00967 [id(0x545), helpstring("method AddConstraint")] 00968 HRESULT AddConstraint([in] IMgaConstraint *constraint); 00969 [id(0x546), helpstring("method DefineConstraint")] 00970 HRESULT DefineConstraint([in] BSTR name, [in] long mask, [in] BSTR expr, [out] IMgaConstraint **nconstraint); 00971 00972 [id(0x551), helpstring("method MoveFCOs")] 00973 HRESULT MoveFCOs([in] IMgaFCOs *to_copy, [out] IMgaFCOs **objs); 00974 [id(0x552), helpstring("method CopyFCOs")] 00975 HRESULT CopyFCOs([in] IMgaFCOs *to_move, [out] IMgaFCOs **objs); 00976 [id(0x561), helpstring("method MoveFolders")] 00977 HRESULT MoveFolders([in] IMgaFolders *to_copy, [out] IMgaFolders **objs); 00978 [id(0x562), helpstring("method CopyFolders")] 00979 HRESULT CopyFolders([in] IMgaFolders *to_move, [out] IMgaFolders **objs); 00980 [id(0x563), helpstring("method MarkParent")] 00981 HRESULT RefreshParent([in] IMgaFolder *folder); 00982 00983 // Container methods and properties 00984 [id(0x553), propget, helpstring("property ChildFCOs")] 00985 HRESULT ChildFCOs([out, retval] IMgaFCOs **pVal); 00986 [id(0x554),propget, helpstring("property ChildFCO, return NULL if not found")] 00987 HRESULT ChildFCO([in] BSTR name, [out, retval] IMgaFCO **pVal); 00988 [helpstring("getter for property ChildFCO, return NULL if not found")] 00989 HRESULT GetChildFCODisp([in] BSTR name, [out, retval] IMgaFCO **pVal); 00990 [id(0x555), helpstring("method GetDescendantFCOs: recursive search")] 00991 HRESULT GetDescendantFCOs([in] IMgaFilter *filter, [out, retval] IMgaFCOs **returnset); 00992 [id(0x556), helpstring("method GetChildFCOsOfKind: non recursive search")] 00993 HRESULT GetChildrenOfKind([in] BSTR kindname, [out, retval] IMgaFCOs **returnset); 00994 00995 [id(0x560), propget, helpstring("property ChildRelIDCounter")] 00996 HRESULT ChildRelIDCounter([out, retval] long *pVal); 00997 [id(0x560), propput, helpstring("property ChildRelIDCounter")] 00998 HRESULT ChildRelIDCounter([in] long pVal); 00999 //lastid: 0x563 01000 01001 [ helpstring("method AttachLibrary")] HRESULT AttachLibrary([in] BSTR connstring, [out] IMgaFolder **nf); 01002 [ helpstring("method RefreshLibrary")] HRESULT RefreshLibrary([in] BSTR connstring); 01003 [ propget, helpstring("method LibraryName")] HRESULT LibraryName([out, retval] BSTR *connstring); 01004 [ propput, helpstring("method LibraryName")] HRESULT LibraryName([in] BSTR connstring); 01005 01006 [ helpstring("method AttachLibrary with Ungroup option (aka Optimization)")] 01007 HRESULT AttachLibraryV3([in] BSTR connstring, [in] VARIANT_BOOL ungroup, [out, retval] IMgaFolder **nf); 01008 [ helpstring("method RefreshLibrary with Ungroup option (aka Optimization)")] 01009 HRESULT RefreshLibraryV3([in] BSTR connstring, [in] VARIANT_BOOL ungroup, [out, retval] long* numOfErrors); 01010 01011 [ helpstring("method for getting those libraries which are virtually included by this")] 01012 HRESULT GetVirtuallyIncludes( [out, retval] IMgaFolders** pDep); 01013 [ helpstring("method for getting those libraries which virtually include this")] 01014 HRESULT GetVirtuallyIncludedBy( [out, retval] IMgaFolders** pDep); 01015 [ helpstring("method for setting those libraries which are virtually included by this")] 01016 HRESULT SetVirtuallyIncludes( [in] IMgaFolders* pDep); 01017 [ helpstring("method for setting those libraries which virtually include this")] 01018 HRESULT SetVirtuallyIncludedBy( [in] IMgaFolders* pDep); 01019 01020 // Dispatch compatible copy/move 01021 [helpstring("method MoveFCO through Dispatch")] 01022 HRESULT MoveFCODisp([in] IMgaFCO *to_copy, [out, retval] IMgaFCO **obj); 01023 [helpstring("method CopyFCO through Dispatch")] 01024 HRESULT CopyFCODisp([in] IMgaFCO *to_move, [out, retval] IMgaFCO **obj); 01025 [helpstring("method MoveFolder through Dispatch")] 01026 HRESULT MoveFolderDisp([in] IMgaFolder *to_copy, [out, retval] IMgaFolder **obj); 01027 [helpstring("method CopyFolder through Dispatch")] 01028 HRESULT CopyFolderDisp([in] IMgaFolder *to_move, [out, retval] IMgaFolder **obj); 01029 01030 // Source control 01031 [ helpstring("method GetSourceControlInfo, to find out current status of file")] 01032 HRESULT GetSourceControlInfo( [out, retval] long * scInfo); 01033 }; 01034 01035 [ 01036 object, 01037 uuid(270B4F9A-B17C-11D3-9AD1-00AA00B6FE26), 01038 dual, 01039 helpstring("IMgaModel Interface"), 01040 pointer_default(unique) 01041 ] 01042 interface IMgaModel : IMgaFCO 01043 { 01044 [ helpstring("method CreateChildObject")] HRESULT CreateChildObject([in] IMgaMetaRole *meta, [out, retval] IMgaFCO **newobj); 01045 [ helpstring("method DeriveChildObject")] HRESULT DeriveChildObject([in] IMgaFCO *base, 01046 [in] IMgaMetaRole *Role, [in] VARIANT_BOOL instance, [out, retval] IMgaFCO **newobj); 01047 01048 [propget, helpstring("property ChildDerivedFrom")] HRESULT ChildDerivedFrom([in] IMgaFCO *baseobj, [out, retval] IMgaFCO **pVal); 01049 01050 [helpstring("getter for property ChildDerivedFrom")] HRESULT GetChildDerivedFromDisp([in] IMgaFCO *baseobj, [out, retval] IMgaFCO **pVal); 01051 01052 [propget, helpstring("property AspectParts")] 01053 HRESULT AspectParts([in] IMgaMetaAspect * asp, [in] unsigned int filter, [out, retval] IMgaParts **pVal); 01054 [helpstring("getter for property AspectParts")] 01055 HRESULT GetAspectPartsDisp([in] IMgaMetaAspect * asp, [in] unsigned int filter, [out, retval] IMgaParts **pVal); 01056 01057 [ helpstring("method CreateSimpleConn")] 01058 HRESULT CreateSimpleConn([in] IMgaMetaRole *meta, [in] IMgaFCO *Src, [in] IMgaFCO *Dst, 01059 [in] IMgaFCOs *srcrefs, [in] IMgaFCOs *dstrefs, [out, retval] IMgaFCO **newobj); 01060 [ helpstring("method CreateReference")] 01061 HRESULT CreateReference([in] IMgaMetaRole *meta, [in] IMgaFCO *Target, [out, retval] IMgaFCO **newobj); 01062 [ helpstring("method AddInternalConnections")] HRESULT AddInternalConnections([in] IMgaFCOs *inobjs, [out, retval] IMgaFCOs **outobjs); 01063 01064 [id(0x551), helpstring("method MoveFCOs")] 01065 HRESULT MoveFCOs([in] IMgaFCOs * to_copy, [in] IMgaMetaRoles *destroles, [out] IMgaFCOs **objs); 01066 [id(0x552), helpstring("method CopyFCOs")] 01067 HRESULT CopyFCOs([in] IMgaFCOs * to_move, [in] IMgaMetaRoles *destroles, [out] IMgaFCOs **objs); 01068 01069 01070 // Container methods and properties 01071 [id(0x553), propget, helpstring("property ChildFCOs")] 01072 HRESULT ChildFCOs([out, retval] IMgaFCOs **pVal); 01073 [id(0x554),propget, helpstring("property ChildFCO, return NULL if not found")] 01074 HRESULT ChildFCO([in] BSTR name, [out, retval] IMgaFCO **pVal); 01075 [helpstring("getter for property ChildFCO, return NULL if not found")] 01076 HRESULT GetChildFCODisp([in] BSTR name, [out, retval] IMgaFCO **pVal); 01077 [id(0x555), helpstring("method GetDescendantFCOs: recursive search")] 01078 HRESULT GetDescendantFCOs([in] IMgaFilter *filter, [out, retval] IMgaFCOs **returnset); 01079 [id(0x556), helpstring("method GetChildFCOsOfKind: non recursive search")] 01080 HRESULT GetChildrenOfKind([in] BSTR kindname, [out, retval] IMgaFCOs **returnset); 01081 01082 [id(0x560), propget, helpstring("property ChildRelIDCounter")] 01083 HRESULT ChildRelIDCounter([out, retval] long *pVal); 01084 [id(0x560), propput, helpstring("property ChildRelIDCounter")] 01085 HRESULT ChildRelIDCounter([in] long pVal); 01086 01087 // Dispatch compatible connection creation 01088 [helpstring("method CreateSimpleConn through Dispatch")] 01089 HRESULT CreateSimpleConnDisp([in] IMgaMetaRole *meta, [in] IMgaFCO *Src, [in] IMgaFCO *Dst, 01090 [in] IMgaFCO *Srcref, [in] IMgaFCO *Dstref, [out, retval] IMgaFCO **newobj); 01091 01092 [helpstring("method CreateSimpleConn through Dispatch")] 01093 HRESULT CreateSimplerConnDisp([in] IMgaMetaRole *meta, [in] IMgaFCO *Src, [in] IMgaFCO *Dst, [out, retval] IMgaFCO **newobj); 01094 01095 // Dispatch compatible copy/move 01096 [helpstring("method MoveFCO through Dispatch")] 01097 HRESULT MoveFCODisp([in] IMgaFCO * to_copy, [in] IMgaMetaRole *destrole, [out, retval] IMgaFCO **obj); 01098 [helpstring("method CopyFCO through Dispatch")] 01099 HRESULT CopyFCODisp([in] IMgaFCO * to_move, [in] IMgaMetaRole *destrole, [out, retval] IMgaFCO **obj); 01100 01101 01102 // Source control 01103 [ helpstring("method GetSourceControlInfo, to find out current status of file")] 01104 HRESULT GetSourceControlInfo( [out, retval] long * scInfo); 01105 }; 01106 01107 [ 01108 object, 01109 uuid(270B4F9C-B17C-11D3-9AD1-00AA00B6FE26), 01110 dual, 01111 helpstring("IMgaAtom Interface"), 01112 pointer_default(unique) 01113 ] 01114 interface IMgaAtom : IMgaFCO 01115 { 01116 }; 01117 01118 [ 01119 object, 01120 uuid(270B4F9E-B17C-11D3-9AD1-00AA00B6FE26), 01121 dual, 01122 helpstring("IMgaPart Interface"), 01123 pointer_default(unique) 01124 ] 01125 01126 interface IMgaPart : IDispatch 01127 { 01128 [propget, helpstring("property Model")] HRESULT Model([out, retval] IMgaModel **pVal); 01129 [propget, helpstring("property Meta")] HRESULT Meta([out, retval] IMgaMetaPart **pVal); 01130 [propget, helpstring("property MetaAspect")] HRESULT MetaAspect([out, retval] IMgaMetaAspect **pVal); 01131 [propget, helpstring("property MetaRole")] HRESULT MetaRole([out, retval] IMgaMetaRole **pVal); 01132 [propget, helpstring("property FCO")] HRESULT FCO([out, retval] IMgaFCO **pVal); 01133 [propget, helpstring("property AccessMask: primary, secondary and/or port")] HRESULT AccessMask([out, retval] long *pVal); 01134 01135 [propget, helpstring("property RegistryMode")] HRESULT RegistryMode([out, retval] VARIANT_BOOL *own); 01136 [propput, helpstring("property RegistryMode")] HRESULT RegistryMode([in] VARIANT_BOOL own); 01137 [propget, helpstring("property RegistryNode")] HRESULT RegistryNode([in] BSTR path, [out, retval] IMgaRegNode **pVal); 01138 [helpstring("getter for property RegistryNode")] HRESULT GetRegistryNodeDisp([in] BSTR path, [out, retval] IMgaRegNode **pVal); 01139 [propget, helpstring("property Registry")] 01140 HRESULT Registry([in, defaultvalue(0)] VARIANT_BOOL virtuals, [out, retval] IMgaRegNodes **pVal); 01141 [helpstring("getter for property Registry")] 01142 HRESULT GetRegistryDisp([in, defaultvalue(0)] VARIANT_BOOL virtuals, [out, retval] IMgaRegNodes **pVal); 01143 [propget, helpstring("property RegistryValue")] HRESULT RegistryValue([in] BSTR path, [out, retval] BSTR *pVal); 01144 [propput, helpstring("property RegistryValue")] HRESULT RegistryValue([in] BSTR path, [in] BSTR newval); 01145 [helpstring("getter for property RegistryValue")] HRESULT GetRegistryValueDisp([in] BSTR path, [out, retval] BSTR *pVal); 01146 [helpstring("setter for property RegistryValue")] HRESULT SetRegistryValueDisp([in] BSTR path, [in] BSTR newval); 01147 01148 01149 [helpstring("method GetGmeAttrs")] HRESULT GetGmeAttrs([out] BSTR *Icon, [out] long *xpos, [out] long *ypos); 01150 [helpstring("method SetGmeAttrs")] HRESULT SetGmeAttrs([in] BSTR Icon, [in] long xpos, [in] long ypos); 01151 }; 01152 01153 [ 01154 object, 01155 uuid(83BA3233-B758-11D3-ABAE-000000000000), 01156 dual, 01157 helpstring("IMgaReference Interface"), 01158 pointer_default(unique) 01159 ] 01160 interface IMgaReference : IMgaFCO 01161 { 01162 [propget, helpstring("property Referred")] HRESULT Referred([out, retval] IMgaFCO * *pVal); 01163 [propput, helpstring("property Referred")] HRESULT Referred([in] IMgaFCO * newVal); 01164 [propget, helpstring("property RefAspect: allways NULL for ref's to non-models, and may also be NULL for model refs")] 01165 HRESULT RefAspect([out, retval] IMgaMetaAspect **pVal); 01166 [propput, helpstring("property RefAspect: NOP for non-model refs")] 01167 HRESULT RefAspect([in] IMgaMetaAspect * newVal); 01168 01169 [propget, helpstring("property UsedByConns: get ConnPoints that connect to this Reference's RefPorts")] 01170 HRESULT UsedByConns([out, retval] IMgaConnPoints **pVal); 01171 /* 01172 [propget, helpstring("property RefPorts")] HRESULT RefPorts([out, retval] IMgaRefPorts **pVal); 01173 [propget, helpstring("property RefPortFor")] HRESULT RefPortFor([in] IMgaFCO* target, [out, retval] IMgaRefPorts *pVal); 01174 */ 01175 [id(0x580), helpstring("method CompareToBase: returns 0 if match found")] 01176 HRESULT CompareToBase([out] short *status); 01177 [id(0x581), helpstring("method RevertToBase")] 01178 HRESULT RevertToBase(); 01179 01180 // Dispatch compatible method, similar to Referred = 0 01181 [helpstring("Clear Reference")] HRESULT ClearRef(); 01182 }; 01183 01184 /* 01185 [ 01186 object, 01187 uuid(), 01188 dual, 01189 helpstring("IMgaRefPort Interface"), 01190 pointer_default(unique) 01191 ] 01192 interface IMgaRefPort : IDispatch 01193 { 01194 [propget, helpstring("property Reference: the reference the port belongs to")] 01195 HRESULT Reference([out, retval] IMgaFCO **pVal); 01196 [propget, helpstring("property Target: the atom this port represents")] 01197 HRESULT Target([out, retval] IMgaFCO **pVal); 01198 [propget, helpstring("property PointsTo: the atom or port immediately referred")] 01199 HRESULT PointsTo([out, retval] IMgaFCO **pVal); 01200 [propget, helpstring("property Visible")] 01201 HRESULT Visible([out, retval] VARIANT_BOOL *pVal); 01202 [propput, helpstring("property Visible")] 01203 HRESULT Visible([out, retval] VARIANT_BOOL newVal); 01204 }; 01205 */ 01206 01207 01208 [ 01209 object, 01210 uuid(83BA3235-B758-11D3-ABAE-000000000000), 01211 dual, 01212 helpstring("IMgaSet Interface"), 01213 pointer_default(unique) 01214 ] 01215 interface IMgaSet : IMgaFCO 01216 { 01217 [helpstring("method AddMember")] HRESULT AddMember([in] IMgaFCO *mem); 01218 [helpstring("method RemoveMember")] HRESULT RemoveMember([in] IMgaFCO *member); 01219 [helpstring("method RemoveAll")] HRESULT RemoveAll(); 01220 [propget, helpstring("property Members")] HRESULT Members([out, retval] IMgaFCOs **pVal); 01221 [propget, helpstring("property IsMember")] HRESULT IsMember([in] IMgaFCO *obj, [out, retval] VARIANT_BOOL *pVal); 01222 01223 [id(0x580), helpstring("method CompareToBase; all elements are compared; 0 if all match")] 01224 HRESULT CompareToBase([out] short *status); 01225 [id(0x581), helpstring("method RevertToBase; all elements are reverted")] 01226 HRESULT RevertToBase(); 01227 /* 01228 [helpstring("method CompareToBase; if elem is null, all elements are compared")] 01229 HRESULT CompareToBase([in, defaultvalue(0)] IMgaFCO *elem, [out] short *status); 01230 [helpstring("method RevertToBase; if elem is null, all elements are reverted")] 01231 HRESULT RevertToBase([in, defaultvalue(0)] IMgaFCO *elem); 01232 */ 01233 [helpstring("getter for property IsMember")] HRESULT GetIsMemberDisp([in] IMgaFCO *obj, [out, retval] VARIANT_BOOL *pVal); 01234 }; 01235 01236 [ 01237 object, 01238 uuid(270B4FA0-B17C-11D3-9AD1-00AA00B6FE26), 01239 dual, 01240 helpstring("IMgaConnection Interface"), 01241 pointer_default(unique) 01242 ] 01243 interface IMgaConnection : IMgaFCO 01244 { 01245 [helpstring("property AddConnPoint")] 01246 HRESULT AddConnPoint([in] BSTR rolename, [in] long maxinrole, 01247 [in] IMgaFCO *Target, [in] IMgaFCOs *refs, [out] IMgaConnPoint **pVal); 01248 [propget, helpstring("property ConnPoints")] HRESULT ConnPoints([out, retval] IMgaConnPoints **pVal); 01249 01250 [helpstring("method CompareToBase; if connpoint is null, all connpoints are compared")] 01251 HRESULT CompareToBase([in] IMgaConnPoint *connpoint, [out] short *status); 01252 [helpstring("method RevertToBase; if connpoint is null, all connpoints are reverted")] 01253 HRESULT RevertToBase([in] IMgaConnPoint *connpoint); 01254 }; 01255 01256 [ 01257 object, 01258 uuid(83BA3237-B758-11D3-ABAE-000000000000), 01259 dual, 01260 helpstring("IMgaSimpleConnection Interface"), 01261 pointer_default(unique) 01262 ] 01263 interface IMgaSimpleConnection : IMgaConnection 01264 { 01265 [propget, helpstring("property Src")] HRESULT Src([out, retval] IMgaFCO * *pVal); 01266 [propget, helpstring("property Dst")] HRESULT Dst([out, retval] IMgaFCO * *pVal); 01267 [propget, helpstring("property SrcReferences")] HRESULT SrcReferences([out, retval] IMgaFCOs **pVal); 01268 [propget, helpstring("property DstReferences")] HRESULT DstReferences([out, retval] IMgaFCOs **pVal); 01269 [helpstring("method SetDst")] HRESULT SetDst([in] IMgaFCOs *references, [in] IMgaFCO *Target); 01270 [helpstring("method SetSrc")] HRESULT SetSrc([in] IMgaFCOs *references, [in] IMgaFCO *Target); 01271 /* 01272 [propget, helpstring("property SrcPort")] HRESULT SrcPort([out, retval] IMgaRefPort **pVal); 01273 [propget, helpstring("property DstPort")] HRESULT DstPort([out, retval] IMgaRefPort **pVal); 01274 [propput, helpstring("property SrcPort")] HRESULT SrcPort([in] IMgaRefPort *newVal); 01275 [propput, helpstring("property DstPort")] HRESULT DstPort([in] IMgaRefPort *newVal); 01276 */ 01277 }; 01278 01279 [ 01280 object, 01281 uuid(cb8fa000-c1fd-11d3-9ad2-00aa00b6fe26), 01282 dual, 01283 helpstring("IMgaConnPoint Interface"), 01284 pointer_default(unique) 01285 ] 01286 interface IMgaConnPoint : IDispatch 01287 { 01288 [propget, helpstring("property Owner")] HRESULT Owner([out, retval] IMgaConnection **pVal); 01289 [propget, helpstring("property ConnRole")] HRESULT ConnRole([out, retval] BSTR *pVal); 01290 [propput, helpstring("property ConnRole")] HRESULT ConnRole([in] BSTR newVal); 01291 [propget, helpstring("property Target")] HRESULT Target([out, retval] IMgaFCO **pVal); 01292 [propget, helpstring("property References")] HRESULT References([out, retval] IMgaFCOs **pVal); 01293 [helpstring("method Remove")] HRESULT Remove(); 01294 // [propget, helpstring("property RefPort")] HRESULT RefPort([out, retval] IMgaRefPort **pVal); 01295 }; 01296 01297 01298 [ 01299 object, 01300 uuid(83BA323D-B758-11D3-ABAE-000000000000), 01301 dual, 01302 helpstring("IMgaRegNode Interface"), 01303 pointer_default(unique) 01304 ] 01305 interface IMgaRegNode : IDispatch 01306 { 01307 [propget, helpstring("property Name")] 01308 HRESULT Name([out, retval] BSTR *pVal); 01309 01310 [propget, helpstring("property Path")] 01311 HRESULT Path([out, retval] BSTR *pVal); 01312 01313 [propget, helpstring("property Value")] 01314 HRESULT Value([out, retval] BSTR *pVal); 01315 01316 [propput, helpstring("property Value")] 01317 HRESULT Value([in] BSTR newVal); 01318 01319 [propget, helpstring("property FCOValue")] 01320 HRESULT FCOValue([out, retval] IMgaFCO **pVal); 01321 01322 [propput, helpstring("property FCOValue")] 01323 HRESULT FCOValue([in] IMgaFCO *newVal); 01324 01325 [propget, helpstring("property SubNodes")] 01326 HRESULT SubNodes([in, defaultvalue(0)] VARIANT_BOOL virtuals, [out, retval] IMgaRegNodes **p); 01327 01328 [helpstring("getter for property SubNodes")] 01329 HRESULT GetSubNodesDisp([in, defaultvalue(0)] VARIANT_BOOL virtuals, [out, retval] IMgaRegNodes **p); 01330 01331 [propget, helpstring("property SubNodeByName")] 01332 HRESULT SubNodeByName([in] BSTR name, [out, retval] IMgaRegNode **pVal); 01333 01334 [helpstring("getter for property SubNodeByName")] 01335 HRESULT GetSubNodeByNameDisp([in] BSTR name, [out, retval] IMgaRegNode **pVal); 01336 01337 [propget, helpstring("property ParentNode")] 01338 HRESULT ParentNode([out, retval] IMgaRegNode **p); 01339 01340 [propget, helpstring("property Status of definition: 0: here, -1: in meta, >=1: inherited")] 01341 HRESULT Status([out] long *status); 01342 01343 [propget, helpstring("property Opacity")] 01344 HRESULT Opacity([out, retval] VARIANT_BOOL *p); 01345 01346 [propput, helpstring("property Opacity")] 01347 HRESULT Opacity([in] VARIANT_BOOL p); 01348 01349 [helpstring("method Clear: assign empty value (nop if virtual)")] 01350 HRESULT Clear(); 01351 01352 [helpstring("method RemoveTree: remove this node and subnodes (nop if already virtual)")] 01353 HRESULT RemoveTree(); 01354 }; 01355 01356 [ 01357 object, 01358 uuid(c8f6e970-c1fd-11d3-9ad2-00aa00b6fe26), 01359 dual, 01360 helpstring("IMgaFilter Interface"), 01361 pointer_default(unique) 01362 ] 01363 interface IMgaFilter : IDispatch 01364 { 01365 [propget, helpstring("property Name: Space-separated list of names")] 01366 HRESULT Name([out, retval] BSTR *pVal); 01367 [propput, helpstring("property Name")] 01368 HRESULT Name([in] BSTR newVal); 01369 [propget, helpstring("property Kind: Space separated list of names or #<metarefs>")] 01370 HRESULT Kind([out, retval] BSTR *pVal); 01371 [propput, helpstring("property Kind")] 01372 HRESULT Kind([in] BSTR newVal); 01373 [propget, helpstring("property Role: Space separated list of names or #<metarefs>")] 01374 HRESULT Role([out, retval] BSTR *pVal); 01375 [propput, helpstring("property Role")] 01376 HRESULT Role([in] BSTR newVal); 01377 [propget, helpstring("property ObjType: Space separated list of objtype numbers or mnemonics")] 01378 HRESULT ObjType([out, retval] BSTR *pVal); 01379 [propput, helpstring("property ObjType")] 01380 HRESULT ObjType([in] BSTR newVal); 01381 [propget, helpstring("property SearchLevel space separated list of numbers, or dash-separated number pairs")] 01382 HRESULT Level([out, retval] BSTR *pVal); 01383 [propput, helpstring("property SearchLevel")] 01384 HRESULT Level([in] BSTR newVal); 01385 [ propget, helpstring("property Project")] 01386 HRESULT Project([out, retval] IMgaProject **pVal); 01387 }; 01388 01389 [ 01390 object, 01391 uuid(CBF20084-BD43-11D3-9AD2-00AA00B6FE26), 01392 dual, 01393 helpstring("IMgaAttribute Interface"), 01394 pointer_default(unique) 01395 ] 01396 interface IMgaAttribute : IDispatch 01397 { 01398 [propget, helpstring("property Meta")] HRESULT Meta([out, retval] IMgaMetaAttribute **pVal); 01399 [propget, helpstring("property Value")] HRESULT Value([out, retval] VARIANT *pVal); 01400 [propput, helpstring("property Value")] HRESULT Value([in] VARIANT newVal); 01401 [propget, helpstring("property Owner")] HRESULT Owner([out, retval] IMgaFCO * *pVal); 01402 [propget, helpstring("property Status of definition: 0: here, -1: in meta, >=1: inherited, -2: undefined")] 01403 HRESULT Status([out, retval] long *status); 01404 [propget, helpstring("property OrigValue")] HRESULT OrigValue([out, retval] VARIANT *pVal); 01405 [propget, helpstring("property HasChanged")] HRESULT HasChanged([out, retval] VARIANT_BOOL *pVal); 01406 01407 [propget, helpstring("property StringValue")] HRESULT StringValue([out, retval] BSTR *pVal); 01408 [propput, helpstring("property StringValue")] HRESULT StringValue([in] BSTR newVal); 01409 [propget, helpstring("property IntValue")] HRESULT IntValue([out, retval] long *pVal); 01410 [propput, helpstring("property IntValue")] HRESULT IntValue([in] long newVal); 01411 [propget, helpstring("property BoolValue")] HRESULT BoolValue([out, retval] VARIANT_BOOL *pVal); 01412 [propput, helpstring("property BoolValue")] HRESULT BoolValue([in] VARIANT_BOOL newVal); 01413 [propget, helpstring("property FloatValue")] HRESULT FloatValue([out, retval] double *pVal); 01414 [propput, helpstring("property FloatValue")] HRESULT FloatValue([in] double newVal); 01415 [propget, helpstring("property FCOValue")] HRESULT FCOValue([out, retval] IMgaFCO **pVal); 01416 [propput, helpstring("property FCOValue")] HRESULT FCOValue([in] IMgaFCO * newVal); 01417 01418 [propget, helpstring("property RegistryNode")] 01419 HRESULT RegistryNode([in] BSTR path, [out, retval] IMgaRegNode **pVal); 01420 [helpstring("getter for property RegistryNode")] 01421 HRESULT GetRegistryNodeDisp([in] BSTR path, [out, retval] IMgaRegNode **pVal); 01422 [propget, helpstring("property Registry")] 01423 HRESULT Registry([in, defaultvalue(0)] VARIANT_BOOL virtuals, [out, retval] IMgaRegNodes **pVal); 01424 [helpstring("getter for property Registry")] 01425 HRESULT GetRegistryDisp([in, defaultvalue(0)] VARIANT_BOOL virtuals, [out, retval] IMgaRegNodes **pVal); 01426 [propget, helpstring("property RegistryValue")] 01427 HRESULT RegistryValue([in] BSTR path, [out, retval] BSTR *pVal); 01428 [propput, helpstring("property RegistryValue")] 01429 HRESULT RegistryValue([in] BSTR path, [in] BSTR newval); 01430 [helpstring("getter for property RegistryValue")] 01431 HRESULT GetRegistryValueDisp([in] BSTR path, [out, retval] BSTR *pVal); 01432 [helpstring("setter for property RegistryValue")] 01433 HRESULT SetRegistryValueDisp([in] BSTR path, [in] BSTR newval); 01434 01435 [helpstring("method Clear")] HRESULT Clear(); 01436 }; 01437 01438 01439 01440 01441 01442 MGACOLL_INTERFACE(c59c2210-c1fd-11d3-9ad2-00aa00b6fe26, MgaFolder) 01443 MGACOLL_INTERFACE(c5f4c2f0-c1fd-11d3-9ad2-00aa00b6fe26, MgaFCO) 01444 MGACOLL_INTERFACE(c6f3f340-c1fd-11d3-9ad2-00aa00b6fe26, MgaAttribute) 01445 MGACOLL_INTERFACE(c71a26f0-c1fd-11d3-9ad2-00aa00b6fe26, MgaPart) 01446 MGACOLL_INTERFACE(c7f19c60-c1fd-11d3-9ad2-00aa00b6fe26, MgaConnPoint) 01447 MGACOLL_INTERFACE(c79f1840-c1fd-11d3-9ad2-00aa00b6fe26, MgaRegNode) 01448 MGACOLL_INTERFACE(c8a5ec80-c1fd-11d3-9ad2-00aa00b6fe26, MgaAddOn) 01449 MGACOLL_INTERFACE2(c87caa70-c1fd-11d3-9ad2-00aa00b6fe26, IMgaTerritories, IMgaTerritory) 01450 MGACOLL_INTERFACE(c8cda760-c1fd-11d3-9ad2-00aa00b6fe26, MgaComponent) 01451 MGACOLL_INTERFACE(c9d8df93-c1fd-11d3-9ad2-00aa00b6fe26, MgaClient) 01452 MGACOLL_INTERFACE(c5aac2f0-c1fd-11d3-9ad2-00aa00b6fe26, MgaObject) 01453 01454 [ 01455 object, 01456 uuid(C356B135-961D-4B6C-8B1F-257E19117CC1), 01457 dual, 01458 helpstring("IMgaO Interface"), 01459 pointer_default(unique) 01460 ] 01461 interface IMgaO : IDispatch 01462 { 01463 };