GME  13
MgaUtil.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 import "Meta.idl";
00008 import "Mga.idl";
00009 
00010 typedef enum mgautil_error {
00011 [helpstring("ComponentProxy was not initialized with a Dispatch based interpreter")]
00012         E_MGAUTIL_COMPONENTPROXY_NOTINITIALIZED =       0x80737001
00013 } mgautil_error;
00014 
00015 // --------------------------- MgaUtil IDL
00016 
00017 [
00018         object,
00019         uuid(461F30B0-3BF0-11D4-B3F0-005004D38590),
00020         dual,
00021         helpstring("IMgaResolver Interface"),
00022         pointer_default(unique)
00023 ]
00024 interface IMgaResolver : IDispatch
00025 {
00026         // clear all accumulated knowledge
00027         [helpstring("method Clear")]
00028         HRESULT Clear();
00029 
00030         [propput, helpstring("property IsInteractive")]
00031         HRESULT IsInteractive([in] VARIANT_BOOL p);
00032 
00033         [propget, helpstring("property IsInteractive")]
00034         HRESULT IsInteractive([out, retval] VARIANT_BOOL *p);
00035 
00036         [propput, helpstring("property IsStickyEnabled")]
00037         HRESULT IsStickyEnabled([in] VARIANT_BOOL p);
00038 
00039         [propget, helpstring("property IsStickyEnabled")]
00040         HRESULT IsStickyEnabled([out, retval] VARIANT_BOOL *p);
00041 
00042         [helpstring("getUserOptions")]
00043         HRESULT getUserOptions();
00044 
00045 // --- resolve by names
00046 
00047         [propget, helpstring("property FolderByStr")]
00048         HRESULT FolderByStr([in] IMgaFolder *parent,
00049                 [in] BSTR kindname, [out, retval] IMgaMetaFolder **p);
00050 
00051         [helpstring("getter for property FolderByStr")]
00052         HRESULT GetFolderByStrDisp([in] IMgaFolder *parent,
00053                 [in] BSTR kindname, [out, retval] IMgaMetaFolder **p);
00054 
00055         [propget, helpstring("property KindByStr")]
00056         HRESULT KindByStr([in] IMgaFolder *parent, 
00057                 [in] BSTR kindname, [in] objtype_enum objtype,
00058                 [out, retval] IMgaMetaFCO **p);
00059 
00060         [helpstring("getter for property KindByStr")]
00061         HRESULT GetKindByStrDisp([in] IMgaFolder *parent, 
00062                 [in] BSTR kindname, [in] objtype_enum objtype,
00063                 [out, retval] IMgaMetaFCO **p);
00064 
00065         [propget, helpstring("property RoleByStr")]
00066         HRESULT RoleByStr([in] IMgaModel *parent,
00067                 [in] BSTR kindname, [in] objtype_enum objtype, 
00068                 [in] BSTR rolename, [in] BSTR aspect,
00069                 [out, retval] IMgaMetaRole **p);
00070 
00071         [helpstring("getter for property RoleByStr")]
00072         HRESULT GetRoleByStrDisp([in] IMgaModel *parent,
00073                 [in] BSTR kindname, [in] objtype_enum objtype, 
00074                 [in] BSTR rolename, [in] BSTR aspect,
00075                 [out, retval] IMgaMetaRole **p);
00076 
00077         [propget, helpstring("property AttrByStr")]
00078         HRESULT AttrByStr([in] IMgaFCO *parent,
00079                 [in] BSTR kindname, [out, retval] IMgaMetaAttribute **p);
00080 
00081         [helpstring("getter for property AttrByStr")]
00082         HRESULT GetAttrByStrDisp([in] IMgaFCO *parent,
00083                 [in] BSTR kindname, [out, retval] IMgaMetaAttribute **p);
00084 
00085 // --- resolve by meta objects
00086 
00087         [propget, helpstring("property RoleByMeta")]
00088         HRESULT RoleByMeta([in] IMgaModel *parent, 
00089                 [in] IMgaMetaFCO *p_kind, [in] objtype_enum objtype, 
00090                 [in] IMgaMetaRole *p_role, [in] IMgaMetaAspect *aspect,
00091                 [out, retval] IMgaMetaRole **p);
00092 
00093         [helpstring("getter for property RoleByMeta")]
00094         HRESULT GetRoleByMetaDisp([in] IMgaModel *parent, 
00095                 [in] IMgaMetaFCO *p_kind, [in] objtype_enum objtype, 
00096                 [in] IMgaMetaRole *p_role, [in] IMgaMetaAspect *aspect,
00097                 [out, retval] IMgaMetaRole **p);
00098 
00099 
00100         [propget, helpstring("property ConnRoleByMeta")]
00101         HRESULT ConnRoleByMeta([in] IMgaModel *parent, 
00102                 [in] IMgaMetaAspect *aspect, 
00103                 [in] IMgaFCO * src, [in] IMgaFCO * src_port,
00104                 [in] IMgaFCO * dst, [in] IMgaFCO * dst_port,
00105                 [out, retval] IMgaMetaRole **p);
00106 
00107         [helpstring("getter for property ConnRoleByMeta")]
00108         HRESULT GetConnRoleByMetaDisp([in] IMgaModel *parent, 
00109                 [in] IMgaMetaAspect *aspect, 
00110                 [in] IMgaFCO * src, [in] IMgaFCO * src_port,
00111                 [in] IMgaFCO * dst, [in] IMgaFCO * dst_port,
00112                 [out, retval] IMgaMetaRole **p);
00113 
00114         [propget, helpstring("property RefRoleByMeta")]
00115         HRESULT RefRoleByMeta([in] IMgaModel *parent, 
00116                 [in] IMgaMetaAspect *aspect, [in] IMgaFCO * src,
00117                 [out, retval] IMgaMetaRole **p);
00118 
00119         [helpstring("getter for property RefRoleByMeta")]
00120         HRESULT GetRefRoleByMetaDisp([in] IMgaModel *parent, 
00121                 [in] IMgaMetaAspect *aspect, [in] IMgaFCO * src,
00122                 [out, retval] IMgaMetaRole **p);
00123 
00124 // -- collection helper
00125 
00126         [propget, helpstring("property RolesByMetas")]
00127         HRESULT RolesByMetas([in] IMgaModel *dst_parent, 
00128                 [in] IMgaFCOs *Src, [in] IMgaMetaAspect * aspect, 
00129                 [in] BSTR sz_aspect, [out, retval] IMgaMetaRoles ** p);
00130 
00131         [helpstring("property RolesByMetas")]
00132         HRESULT GetRolesByMetasDisp([in] IMgaModel *dst_parent, 
00133                 [in] IMgaFCOs *Src, [in] IMgaMetaAspect * aspect, 
00134                 [in] BSTR sz_aspect, [out, retval] IMgaMetaRoles ** p);
00135 
00136 
00137 };
00138 
00139 
00140 typedef enum regaccessmode_enum {
00141         REGACCESS_NONE = 0,                     // only used as return value from RegistryStatus
00142         REGACCESS_USER = 1,                     // *
00143         REGACCESS_SYSTEM = 2,           // *
00144         REGACCESS_PRIORITY  = 5,   // valid only for read ops
00145         REGACCESS_BOTH  = 3,       // * valid only for write and list read ops
00146         REGACCESS_TEST = 8,                // valid only for write ops
00147 // * = valid argument for regsvr32 /i
00148 } regaccessmode_enum;
00149 
00150 
00151 typedef enum edgesmoothmode_enum {                              // For clues see SetSmoothingMode SmoothingMode help in MSDN
00152         EdgeSmooth_NoSmooth                                     = 0,    // This is the system default
00153         EdgeSmooth_HighSpeedMode                        = 1,    // Smoothing but better speed than high quality mode
00154         EdgeSmooth_HighQualityMode                      = 2             // The best quality
00155 } edgesmoothmode_enum;
00156 
00157 typedef enum fontsmoothmode_enum {                              // For clues see SetTextRenderingHint TextRenderingHint help in MSDN
00158         FontSmooth_SystemDefault                        = 0,
00159         FontSmooth_SingleBitPerPixelGridFit = 1,
00160         FontSmooth_SingleBitPerPixel            = 2,
00161         FontSmooth_AntiAliasGridFit                     = 3,
00162         FontSmooth_AntiAlias                            = 4,
00163         FontSmooth_ClearTypeGridFit                     = 5
00164 } fontsmoothmode_enum;
00165 
00166 
00167 [
00168         object,
00169         uuid(F1D6BB05-42EE-11D4-B3F4-005004D38590),
00170         dual,
00171         helpstring("IMgaRegistrar Interface"),
00172         pointer_default(unique)
00173 ]
00174 interface IMgaRegistrar : IDispatch
00175 {
00176         // --- IconPath GME settings
00177         // path is a ";" separated list
00178         [propget, helpstring("property IconPath")]
00179         HRESULT IconPath([in] regaccessmode_enum mode, [out, retval] BSTR *path);
00180 
00181         [propput, helpstring("property IconPath")]
00182         HRESULT IconPath([in] regaccessmode_enum mode, [in] BSTR path);
00183 
00184         [helpstring("getter for property IconPath")]
00185         HRESULT GetIconPathDisp([in] regaccessmode_enum mode, [out, retval] BSTR *path);
00186 
00187         [helpstring("setter for property IconPath")]
00188         HRESULT SetIconPathDisp([in] regaccessmode_enum mode, [in] BSTR path);
00189 
00190         // --- Multiview GME settings
00191         [propget, helpstring("property ShowMultipleView")]
00192         HRESULT ShowMultipleView([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00193 
00194         [propput, helpstring("property ShowMultipleView")]
00195         HRESULT ShowMultipleView([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00196 
00197         [helpstring("getter for property ShowMultipleView")]
00198         HRESULT GetShowMultipleViewDisp([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00199 
00200         [helpstring("setter for property ShowMultipleView")]
00201         HRESULT SetShowMultipleViewDisp([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00202 
00203         // --- Logging GME settings
00204         [propget, helpstring("property EventLoggingEnabled")]
00205         HRESULT EventLoggingEnabled([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00206 
00207         [propput, helpstring("property EventLoggingEnabled")]
00208         HRESULT EventLoggingEnabled([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00209 
00210         [helpstring("getter for property EventLoggingEnabled")]
00211         HRESULT GetEventLoggingEnabledDisp([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00212 
00213         [helpstring("setter for property EventLoggingEnabled")]
00214         HRESULT SetEventLoggingEnabledDisp([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00215 
00216         // --- Autosave GME settings
00217         [propget, helpstring("property AutosaveEnabled")]
00218         HRESULT AutosaveEnabled([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00219 
00220         [propput, helpstring("property AutosaveEnabled")]
00221         HRESULT AutosaveEnabled([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00222 
00223         [helpstring("getter for property AutosaveEnabled")]
00224         HRESULT GetAutosaveEnabledDisp([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00225 
00226         [helpstring("setter for property AutosaveEnabled")]
00227         HRESULT SetAutosaveEnabledDisp([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00228 
00229         [propget, helpstring("property AutosaveFreq")]
00230         HRESULT AutosaveFreq([in] regaccessmode_enum mode, [out, retval] long *secs);
00231 
00232         [propput, helpstring("property AutosaveFreq")]
00233         HRESULT AutosaveFreq([in] regaccessmode_enum mode, [in] long secs);
00234 
00235         [helpstring("getter for property AutosaveFreq")]
00236         HRESULT GetAutosaveFreqDisp([in] regaccessmode_enum mode, [out, retval] long *secs);
00237 
00238         [helpstring("property AutosaveFreq")]
00239         HRESULT SetAutosaveFreqDisp([in] regaccessmode_enum mode, [in] long secs);
00240 
00241         [propget, helpstring("property AutosaveUseDir")]
00242         HRESULT AutosaveUseDir([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *use);
00243 
00244         [propput, helpstring("property AutosaveUseDir")]
00245         HRESULT AutosaveUseDir([in] regaccessmode_enum mode, [in] VARIANT_BOOL use);
00246 
00247         [helpstring("getter for property AutosaveUseDir")]
00248         HRESULT GetAutosaveUseDirDisp([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *use);
00249 
00250         [helpstring("setter for property AutosaveUseDir")]
00251         HRESULT SetAutosaveUseDirDisp([in] regaccessmode_enum mode, [in] VARIANT_BOOL use);
00252 
00253         [propget, helpstring("property AutosaveDir")]
00254         HRESULT AutosaveDir([in] regaccessmode_enum mode, [out, retval] BSTR *dir);
00255 
00256         [propput, helpstring("property AutosaveDir")]
00257         HRESULT AutosaveDir([in] regaccessmode_enum mode, [in] BSTR dir);
00258 
00259         [helpstring("getter for property AutosaveDir")]
00260         HRESULT GetAutosaveDirDisp([in] regaccessmode_enum mode, [out, retval] BSTR *dir);
00261 
00262         [helpstring("setter for property AutosaveDir")]
00263         HRESULT SetAutosaveDirDisp([in] regaccessmode_enum mode, [in] BSTR dir);
00264 
00265         // --- External Editor settings
00266         [propget, helpstring("property ExternalEditorEnabled")]
00267         HRESULT ExternalEditorEnabled([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00268 
00269         [propput, helpstring("property ExternalEditorEnabled")]
00270         HRESULT ExternalEditorEnabled([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00271 
00272         [helpstring("getter for property ExternalEditorEnabled")]
00273         HRESULT GetExternalEditorEnabledDisp([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00274 
00275         [helpstring("setter for property ExternalEditorEnabled")]
00276         HRESULT SetExternalEditorEnabledDisp([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00277 
00278         [propget, helpstring("property ExternalEditor")]
00279         HRESULT ExternalEditor([in] regaccessmode_enum mode, [out, retval] BSTR *path);
00280 
00281         [propput, helpstring("property ExternalEditor")]
00282         HRESULT ExternalEditor([in] regaccessmode_enum mode, [in] BSTR path);
00283 
00284         [helpstring("getter for property ExternalEditor")]
00285         HRESULT GetExternalEditorDisp([in] regaccessmode_enum mode, [out, retval] BSTR *path);
00286 
00287         [helpstring("setter for property ExternalEditor")]
00288         HRESULT SetExternalEditorDisp([in] regaccessmode_enum mode, [in] BSTR path);
00289 
00290         // --- AutoRouter
00291         [propget, helpstring("property UseAutoRouting")]
00292         HRESULT UseAutoRouting([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00293 
00294         [propput, helpstring("property UseAutoRouting")]
00295         HRESULT UseAutoRouting([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00296 
00297         [helpstring("getter for property UseAutoRouting")]
00298         HRESULT GetUseAutoRoutingDisp([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00299 
00300         [helpstring("setter for property UseAutoRouting")]
00301         HRESULT SetUseAutoRoutingDisp([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00302 
00303         [propget, helpstring("property LabelAvoidance")]
00304         HRESULT LabelAvoidance([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00305 
00306         [propput, helpstring("property LabelAvoidance")]
00307         HRESULT LabelAvoidance([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00308 
00309         [helpstring("getter for property LabelAvoidance")]
00310         HRESULT GetLabelAvoidanceDisp([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00311 
00312         [helpstring("setter for property LabelAvoidance")]
00313         HRESULT SetLabelAvoidanceDisp([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00314 
00315         // --- Scripting
00316         [propget, helpstring("property ScriptEngine")]
00317         HRESULT ScriptEngine([in] regaccessmode_enum mode, [out, retval] BSTR *path);
00318 
00319         [propput, helpstring("property ScriptEngine")]
00320         HRESULT ScriptEngine([in] regaccessmode_enum mode, [in] BSTR path);
00321 
00322         [helpstring("getter for property ScriptEngine")]
00323         HRESULT GetScriptEngineDisp([in] regaccessmode_enum mode, [out, retval] BSTR *path);
00324 
00325         [helpstring("setter for property ScriptEngine")]
00326         HRESULT SetScriptEngineDisp([in] regaccessmode_enum mode, [in] BSTR path);
00327 
00328         [helpstring("get DefZoomLevel")]
00329         HRESULT GetDefZoomLevel([in] regaccessmode_enum mode, [out, retval] BSTR *zlevel);
00330 
00331         [helpstring("set DefZoomLevel")]
00332         HRESULT SetDefZoomLevel([in] regaccessmode_enum mode, [in] BSTR zlevel);
00333 
00334         // --- Send Mouse Over Object Notification
00335         [helpstring("property MouseOverNotify")]
00336         HRESULT GetMouseOverNotify([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00337 
00338         [helpstring("property SendMouseOverObjNotif")]
00339         HRESULT SetMouseOverNotify([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00340 
00341         [helpstring("get real number format string")]
00342         HRESULT GetRealNmbFmtStr([in] regaccessmode_enum mode, [out, retval] BSTR *fmtStr);
00343 
00344         [helpstring("set real number format string")]
00345         HRESULT SetRealNmbFmtStr([in] regaccessmode_enum mode, [in] BSTR fmtStr);
00346 
00347         // --- TimeStamping Messages in Console Window
00348         [helpstring("getter method for TimeStamping")]
00349         HRESULT GetTimeStamping([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00350 
00351         [helpstring("setter method for TimeStamping")]
00352         HRESULT SetTimeStamping([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00353 
00354         // --- ModelHistory Navigation enabled
00355         [helpstring("is Navigation enabled")]
00356         HRESULT GetNavigation([in] regaccessmode_enum mode, [out, retval] VARIANT_BOOL *enabled);
00357 
00358         [helpstring("setter for Navigation")]
00359         HRESULT SetNavigation([in] regaccessmode_enum mode, [in] VARIANT_BOOL enabled);
00360 
00361         // --- UndoSize preference
00362         [helpstring("getter for Undo size queue")]
00363         HRESULT GetUndoQueueSize(regaccessmode_enum mode, BSTR *queuesz);
00364 
00365         [helpstring("setter for Undo size queue. Valid if >=1. Affects GME performance. The smaller the faster.")]
00366         HRESULT SetUndoQueueSize(regaccessmode_enum mode, BSTR queuesz);
00367 
00368         // --- AntiAlias preferences
00369         [propget, helpstring("property EdgeSmoothMode")]
00370         HRESULT EdgeSmoothMode([in] regaccessmode_enum mode, [out, retval] edgesmoothmode_enum* smoothMode);
00371 
00372         [propput, helpstring("property EdgeSmoothMode")]
00373         HRESULT EdgeSmoothMode([in] regaccessmode_enum mode, [in] edgesmoothmode_enum smoothMode);
00374 
00375         [helpstring("getter for Edge smooth mode (anti alias)")]
00376         HRESULT GetEdgeSmoothModeDisp([in] regaccessmode_enum mode, [out, retval] edgesmoothmode_enum* smoothMode);
00377 
00378         [helpstring("setter for Edge smooth mode (anti alias).")]
00379         HRESULT SetEdgeSmoothModeDisp([in] regaccessmode_enum mode, [in] edgesmoothmode_enum smoothMode);
00380 
00381         [propget, helpstring("property FontSmoothMode")]
00382         HRESULT FontSmoothMode([in] regaccessmode_enum mode, [out, retval] fontsmoothmode_enum* smoothMode);
00383 
00384         [propput, helpstring("property FontSmoothMode")]
00385         HRESULT FontSmoothMode([in] regaccessmode_enum mode, [in] fontsmoothmode_enum smoothMode);
00386 
00387         [helpstring("getter for Font smooth mode (anti alias)")]
00388         HRESULT GetFontSmoothModeDisp([in] regaccessmode_enum mode, [out, retval] fontsmoothmode_enum* smoothMode);
00389 
00390         [helpstring("setter for Font smooth mode (anti alias).")]
00391         HRESULT SetFontSmoothModeDisp([in] regaccessmode_enum mode, [in] fontsmoothmode_enum smoothMode);
00392 
00393         // --- Paradigms
00394 
00395         // names() As String
00396         // guid(0 To 15) As Byte
00397         [propget, helpstring("property Paradigms")]
00398         HRESULT Paradigms([in] regaccessmode_enum mode, [out, retval] VARIANT *names);
00399 
00400         [helpstring("getter for property Paradigms")]
00401         HRESULT GetParadigmsDisp([in] regaccessmode_enum mode, [out, retval] VARIANT *names);
00402 
00403         [helpstring("method RegisterParadigmFromData")]
00404         HRESULT RegisterParadigmFromData([in] BSTR ConnStr, [out] BSTR *newname, [in] regaccessmode_enum mode);
00405 
00406         [helpstring("method RegisterParadigmFromData - Dispatch compatible signature")]
00407         HRESULT RegisterParadigmFromDataDisp([in] BSTR ConnStr, [in] regaccessmode_enum mode, [out, retval] BSTR *newname);
00408 
00409         [helpstring("method RegisterParadigm")]
00410         HRESULT RegisterParadigm([in] BSTR name, [in] BSTR ConnStr, [in] BSTR ver, [in] VARIANT guid, [in] regaccessmode_enum mode);
00411 
00412         [helpstring("method QueryParadigm")]
00413         HRESULT QueryParadigm([in] BSTR name, [out] BSTR *ConnStr, [in,out] VARIANT *guid, [in] regaccessmode_enum mode);
00414 
00415         [propget, helpstring("property QueryParadigmGUIDString")]
00416         HRESULT ParadigmGUIDString([in] regaccessmode_enum mode, [in] BSTR name, [out, retval] BSTR *guidstr);
00417 
00418         [helpstring("getter for property QueryParadigmGUIDString")]
00419         HRESULT GetParadigmGUIDStringDisp([in] regaccessmode_enum mode, [in] BSTR name, [out, retval] BSTR *guidstr);
00420 
00421         [helpstring("method QueryParadigmAllGUIDs - returns GUID strings")]
00422         HRESULT QueryParadigmAllGUIDs([in] BSTR name, [out] VARIANT *names, [in] regaccessmode_enum mode);
00423 
00424         [helpstring("method UnregisterParadigm")]
00425         HRESULT UnregisterParadigm([in] BSTR name, [in] regaccessmode_enum mode);
00426 
00427         [helpstring("method UnregisterParadigmGUID")]
00428         HRESULT UnregisterParadigmGUID([in] BSTR name, [in] VARIANT guid, [in] regaccessmode_enum mode);
00429 
00430         [helpstring("method VersionFromGUID")]
00431         HRESULT VersionFromGUID([in] BSTR name, [in] VARIANT guid, [out] BSTR *ver, [in] regaccessmode_enum mode);
00432 
00433         [helpstring("method GUIDFromVersion")]
00434         HRESULT GUIDFromVersion([in] BSTR name, [in] BSTR ver, [out] VARIANT* guid, [in] regaccessmode_enum mode);
00435 
00436         // --- Components
00437 
00438         // progids() As String
00439         [propget, helpstring("property Components")]
00440         HRESULT Components([in] regaccessmode_enum mode, [out, retval] VARIANT *progids);
00441 
00442         [helpstring("getter for property Components")]
00443         HRESULT GetComponentsDisp([in] regaccessmode_enum mode, [out, retval] VARIANT *progids);
00444 
00445         [helpstring("method RegisterComponent")]
00446         HRESULT RegisterComponent([in] BSTR ProgID, [in] componenttype_enum type, [in] BSTR desc, [in] regaccessmode_enum mode);
00447 
00448         [helpstring("method QueryComponent")]
00449         HRESULT QueryComponent([in] BSTR ProgID, [out] componenttype_enum *type, [out] BSTR *desc, [in] regaccessmode_enum mode);
00450 
00451         [helpstring("method UnregisterComponent")]
00452         HRESULT UnregisterComponent([in] BSTR ProgID, [in] regaccessmode_enum mode);
00453 
00454         [propput, helpstring("property ComponentExtraInfo")]
00455         HRESULT ComponentExtraInfo([in] regaccessmode_enum mode, 
00456                                 [in] BSTR ProgID, [in] BSTR name, 
00457                                 [in] BSTR newVal);
00458 
00459         [propget, helpstring("property ComponentExtraInfo")]
00460         HRESULT ComponentExtraInfo([in] regaccessmode_enum mode, 
00461                                 [in] BSTR ProgID, [in] BSTR name, 
00462                                 [out, retval] BSTR *pVal);
00463 
00464         [helpstring("setter for property ComponentExtraInfo")]
00465         HRESULT SetComponentExtraInfoDisp([in] regaccessmode_enum mode, 
00466                                 [in] BSTR ProgID, [in] BSTR name, 
00467                                 [in] BSTR newVal);
00468 
00469         [helpstring("getter for property ComponentExtraInfo")]
00470         HRESULT GetComponentExtraInfoDisp([in] regaccessmode_enum mode, 
00471                                 [in] BSTR ProgID, [in] BSTR name, 
00472                                 [out, retval] BSTR *pVal);
00473 
00474         [propget, helpstring("property LocalDllPath")]
00475         HRESULT LocalDllPath([in] BSTR ProgID, [out, retval] BSTR *pVal);
00476 
00477         [helpstring("getter for property LocalDllPath")]
00478         HRESULT GetLocalDllPathDisp([in] BSTR ProgID, [out, retval] BSTR *pVal);
00479 
00480         // --- Associate
00481 
00482         // progids() As String
00483         [propget, helpstring("method AssociatedComponents")]
00484         HRESULT AssociatedComponents([in] BSTR Paradigm, 
00485                 [in] componenttype_enum type, [in] regaccessmode_enum mode, [out, retval] VARIANT *progids);
00486 
00487         [helpstring("getter for method AssociatedComponents")]
00488         HRESULT GetAssociatedComponentsDisp([in] BSTR Paradigm, 
00489                 [in] componenttype_enum type, [in] regaccessmode_enum mode, [out, retval] VARIANT *progids);
00490 
00491         // paradigms() As String
00492         [propget, helpstring("method AssociatedParadigms")]
00493         HRESULT AssociatedParadigms([in] BSTR ProgID,
00494                  [in] regaccessmode_enum mode, [out, retval] VARIANT *paradigms);
00495 
00496         [helpstring("getter for property AssociatedParadigms")]
00497         HRESULT GetAssociatedParadigmsDisp([in] BSTR ProgID,
00498                  [in] regaccessmode_enum mode, [out, retval] VARIANT *paradigms);
00499 
00500         [helpstring("method Associate")]
00501         HRESULT Associate([in] BSTR ProgID, [in] BSTR Paradigm, [in] regaccessmode_enum mode);
00502 
00503         [helpstring("method Disassociate")]
00504         HRESULT Disassociate([in] BSTR ProgID, [in] BSTR Paradigm, [in] regaccessmode_enum mode);
00505 
00506         [helpstring("method IsAssociated")]
00507         HRESULT IsAssociated([in] BSTR ProgID, [in] BSTR Paradigm, 
00508                         [out] VARIANT_BOOL *is_ass, [out] VARIANT_BOOL *can_ass, [in] regaccessmode_enum mode);
00509         // --- Actions
00510 
00511         // registers each component in library
00512         // do not call it from DLLRegisterServer
00513         [helpstring("method RegisterComponentLibrary")]
00514         HRESULT RegisterComponentLibrary([in] BSTR path, [in] regaccessmode_enum mode);
00515 
00516         [helpstring("method UnregisterComponentLibrary")]
00517         HRESULT UnregisterComponentLibrary([in] BSTR path, [in] regaccessmode_enum mode);
00518 };
00519 
00520 typedef enum metadlg_enum
00521 {
00522         METADLG_NONE =          0x0000,
00523         METADLG_NEWFILE =       0x0001,         // new file
00524         METADLG_PARREG =        0x0002,         // register paradigms
00525 } metadlg_enum;
00526 
00527 typedef enum componentdlg_enum
00528 {
00529         COMPONENTDLG_NONE =             0x0000,
00530         COMPONENTDLG_INTERP =   0x0001,
00531 } componentdlg_enum;
00532 
00533 [
00534         object,
00535         uuid(D03EC326-447B-11D4-B3F6-005004D38590),
00536         dual,
00537         helpstring("IMgaLauncher Interface"),
00538         pointer_default(unique)
00539 ]
00540 interface IMgaLauncher : IDispatch
00541 {
00542         // --- Properties
00543 
00544         [propput, helpstring("property ParadigmName")]
00545         HRESULT ParadigmName([in] BSTR p);
00546 
00547         [propput, helpstring("property ComponentType")]
00548         HRESULT ComponentType([in] componenttype_enum type);
00549 
00550         [propput, helpstring("property Parameter")]
00551         HRESULT Parameter([in] VARIANT p);
00552 
00553         [propget, helpstring("property ParadigmName")]
00554         HRESULT ParadigmName([out, retval] BSTR *p);
00555 
00556         [propget, helpstring("property ConnStr")]
00557         HRESULT ConnStr([out, retval] BSTR *p);
00558 
00559         [propget, helpstring("property Paradigm")]
00560         HRESULT Paradigm([out, retval] IMgaMetaProject **p);
00561 
00562         [propget, helpstring("property ProgID")]
00563         HRESULT ProgID([out, retval] BSTR *p);
00564 
00565         // --- Dialogs
00566 
00567         [helpstring("method MetaDlg")]
00568         HRESULT MetaDlg(metadlg_enum flags);
00569 
00570         [helpstring("method GmeDlg")]
00571         HRESULT GmeDlg();
00572 
00573         [helpstring("method ComponentDlg")]
00574         HRESULT ComponentDlg(componentdlg_enum flags);
00575 
00576         [helpstring("method PropDlg")]
00577         HRESULT PropDlg([in] IMgaObject * obj);
00578 
00579         [helpstring("method AttrDlg")]
00580         HRESULT AttrDlg([in] IMgaObject * obj);
00581 
00582         [helpstring("method ShowHelp")]
00583         HRESULT ShowHelp([in] IMgaObject * obj);
00584 
00585         [helpstring("method RegistryBrowser")]
00586         HRESULT RegistryBrowser([in] IMgaObject * obj);
00587 
00588         [helpstring("method AnnotationBrowser")]
00589         HRESULT AnnotationBrowser([in] IMgaObject * obj, [in] IMgaRegNode * focus);
00590 
00591         // --- Other stuff
00592 
00593         [helpstring("method RunComponent")]   
00594         HRESULT RunComponent([in] BSTR ProgID, [in] IMgaProject *p, 
00595                 [in] IMgaFCO *focusobj, [in] IMgaFCOs *selectedobjs, [in] long param);
00596 };
00597 
00598 [
00599         object,
00600         uuid(D0317326-447B-12D4-B3F6-005004D38590),
00601         helpstring("IMgaProgressDlg Interface"),
00602         pointer_default(unique)
00603 ]
00604 interface IMgaProgressDlg : IUnknown
00605 {
00606         [helpstring("method SetTitle")]
00607         HRESULT SetTitle([in] BSTR title);
00608 
00609         // lines: 0, 1
00610         [helpstring("method SetLine")]
00611         HRESULT SetLine([in] int line, [in] BSTR msg);
00612 
00613         [helpstring("method StartProgressDialog")]
00614         HRESULT StartProgressDialog([in] HWND hwndParent);
00615 
00616         [helpstring("method HasUserCancelled")]
00617         HRESULT HasUserCancelled([out, retval] VARIANT_BOOL *p);
00618 
00619         [helpstring("method SetProgress")]
00620         HRESULT SetProgress([in] long completed, [in] long total);
00621 
00622         [helpstring("method StopProgressDialog")]
00623         HRESULT StopProgressDialog();
00624 };
00625 
00626 [
00627         object,
00628         uuid(FF01497A-36EB-4EA7-BE44-2FA98BD703DB),
00629 
00630         helpstring("IMgaComponentProxy Interface"),
00631         pointer_default(unique)
00632 ]
00633 interface IMgaComponentProxy : IUnknown
00634 {
00635         [propput, helpstring("property DispatchComponent")]
00636         HRESULT DispatchComponent([in] IDispatch *component);
00637 };
00638 
00639 [
00640         object,
00641         uuid(74348E5A-C76D-4c2e-88D5-D968C01CE432),
00642         dual,
00643         helpstring("IMgaClosure Interface"),
00644         pointer_default(unique)
00645 ]
00646 interface IMgaClosure : IDispatch
00647 {
00648         [helpstring("method GetLastClosureId - returns the last closure id stored in the rootfolder's registry")]
00649         HRESULT GetLastClosureId
00650                 ( [in] IMgaProject* p
00651                 , [out, retval] long* p_pMarkWith);
00652 
00653         [helpstring("method PutLastClosureId - saves the new last id")]
00654         HRESULT PutLastClosureId
00655                 ( [in] IMgaProject* p
00656                 , [in] long  p_iMarkWith);
00657 
00658         [helpstring("method SelectiveClosure")]
00659         HRESULT SelectiveClosureDlg
00660                 ( [in]  VARIANT_BOOL folder_containment_needed
00661                 , [out] VARIANT_BOOL* refers_to,           [out] VARIANT_BOOL* referred_by
00662                 , [out] VARIANT_BOOL* connections,         [out] VARIANT_BOOL* conns_through_refport
00663                 , [out] VARIANT_BOOL* set_members,         [out] VARIANT_BOOL* member_of_sets
00664                 , [out] VARIANT_BOOL* model_containment,   [out] VARIANT_BOOL* part_of_models
00665                 , [out] VARIANT_BOOL* folder_containment,  [out] VARIANT_BOOL* part_of_folders
00666                 , [out] VARIANT_BOOL* base_type_of,        [out] VARIANT_BOOL* derived_types_of
00667                 , [out] long* library_element_handling     // 0: stubs, 1: stop, 2: continue
00668                 , [out] long* wrapping                     // 0: miniproject, 1: automatic, 2: as is
00669                 , [out] long* kind_filter                  // -1 = all, otherwise calculate the 0b000rsamf mask, where f = Folders, m = Models, a = Atoms, s = Sets, r = References
00670                 , [in, out] long* mark_value               // -1 = do not mark, otherwise mark objects' registry with marker value specified by the user
00671                 , [out] long* options                      // special value
00672                 , [out] VARIANT_BOOL* direction_down       // main direction to go in the hierarchy
00673                 , [out] VARIANT_BOOL* copy_to_file         // either file or clipboard
00674                 , [out] VARIANT_BOOL* ok_pressed           // how ended the dialog?
00675                 , [out] BSTR* file_name_selected         // the user provided filename
00676                 );
00677 
00678         HRESULT SelectiveClosureCalc
00679                 ( [in] IMgaFCOs *init_sel_fcos        , [in] IMgaFolders *init_sel_folders
00680                 , [in] VARIANT_BOOL refers_to         , [in] VARIANT_BOOL referred_by
00681                 , [in] VARIANT_BOOL connections       , [in] VARIANT_BOOL conns_through_refport
00682                 , [in] VARIANT_BOOL set_members       , [in] VARIANT_BOOL member_of_sets
00683                 , [in] VARIANT_BOOL model_containment , [in] VARIANT_BOOL part_of_models
00684                 , [in] VARIANT_BOOL folder_containment, [in] VARIANT_BOOL part_of_folders
00685                 , [in] VARIANT_BOOL base_type_of      , [in] VARIANT_BOOL derived_types_of
00686                 , [in] long library_element_handling      // 0: stubs, 1: stop, 2: continue
00687                 , [in] long wrapping                      // 0: miniproject, 1: automatic, 2: as is
00688                 , [in] long kind_filter                   // -1 = all, otherwise calculate the 0b000rsamf mask, where f = Folders, m = Models, a = Atoms, s = Sets, r = References
00689                 , [in] long mark_value                    // -1 = do not mark, otherwise mark objects' registry selected in the closure
00690                 , [in] VARIANT_BOOL direction_down
00691                 , [out] IMgaFCOs **sel_fcos            , [out] IMgaFolders **sel_folders
00692                 , [out] IMgaFCOs **top_fcos            , [out] IMgaFolders **top_folders
00693                 , [out] VARIANT_BOOL* top_collections_filled
00694                 , [out] BSTR* acc_kinds
00695                 );
00696 
00697 
00698         [helpstring("method SmartCopy")]
00699         HRESULT SmartCopy(
00700                 [in] IMgaFCOs *init_sel_fcos, [in] IMgaFolders *init_sel_folders,
00701                 [out] IMgaFCOs **sel_fcos,  [out] IMgaFolders **sel_folders,
00702                 [out] IMgaFCOs **top_fcos, [out] IMgaFolders **top_folders,
00703                 [in] int folder_containment,
00704                 [out] long * options,
00705                 [out] BSTR *acckinds,
00706                 [out] BSTR *path
00707                 );
00708 };
00709 
00710 [
00711         object,
00712         uuid(9D46C230-31A5-4248-B61E-4223FA6A7F7A),
00713         dual,
00714         helpstring("IMgaEventLogger Interface"),
00715         pointer_default(unique)
00716 ]
00717 interface IMgaEventLogger : IDispatch
00718 
00719 {
00720 
00721         [helpstring("method LogEvent")]
00722         HRESULT LogEvent([in] BSTR eventMsg);
00723 
00724         [helpstring("method StartLogging")]
00725         HRESULT StartLogging();
00726 
00727         [helpstring("method StopLogging")]
00728         HRESULT StopLogging();
00729 
00730         [helpstring("method EmergencyEvent")]
00731         HRESULT EmergencyEvent();
00732 
00733 }
00734