ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

msiserver.idl
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2007 Mike McCormack
00003  * Copyright (C) 2007 Misha Koshelev
00004  *
00005  * This library is free software; you can redistribute it and/or
00006  * modify it under the terms of the GNU Lesser General Public
00007  * License as published by the Free Software Foundation; either
00008  * version 2.1 of the License, or (at your option) any later version.
00009  *
00010  * This library is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013  * Lesser General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU Lesser General Public
00016  * License along with this library; if not, write to the Free Software
00017  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00018  */
00019 
00020 #include "msiserver_dispids.h"
00021 import "unknwn.idl";
00022 import "wtypes.idl";
00023 import "objidl.idl";
00024 import "oaidl.idl";
00025 
00026 cpp_quote("#if 0")
00027 typedef unsigned long MSIHANDLE;
00028 typedef int INSTALLMESSAGE;
00029 typedef int MSICONDITION;
00030 typedef int MSIRUNMODE;
00031 typedef int INSTALLSTATE;
00032 cpp_quote("#endif")
00033 
00034 [
00035     uuid(7BDE2046-D03B-4ffc-B84C-A098F38CFF0B),
00036     oleautomation,
00037     object
00038 ]
00039 interface IWineMsiRemoteDatabase : IUnknown
00040 {
00041     HRESULT IsTablePersistent( [in] LPCWSTR table, [out] MSICONDITION *persistent );
00042     HRESULT GetPrimaryKeys( [in] LPCWSTR table, [out] MSIHANDLE *keys );
00043     HRESULT GetSummaryInformation( [in] UINT updatecount, [out] MSIHANDLE *suminfo );
00044     HRESULT OpenView( [in] LPCWSTR query, [out] MSIHANDLE *view );
00045     HRESULT SetMsiHandle( [in] MSIHANDLE handle );
00046 }
00047 
00048 [
00049     uuid(902B3592-9D08-4dfd-A593-D07C52546421),
00050     oleautomation,
00051     object
00052 ]
00053 interface IWineMsiRemotePackage : IUnknown
00054 {
00055     HRESULT SetMsiHandle( [in] MSIHANDLE handle );
00056     HRESULT GetActiveDatabase( [out] MSIHANDLE *handle );
00057     HRESULT GetProperty( [in] BSTR property, [out, size_is(*size)] BSTR value, [in, out] DWORD *size );
00058     HRESULT SetProperty( [in] BSTR property, [in] BSTR value );
00059     HRESULT ProcessMessage( [in] INSTALLMESSAGE message, [in] MSIHANDLE record );
00060     HRESULT DoAction( [in] BSTR action );
00061     HRESULT Sequence( [in] BSTR table, [in] int sequence );
00062     HRESULT GetTargetPath( [in] BSTR folder, [out, size_is(*size)] BSTR value, [in, out] DWORD *size );
00063     HRESULT SetTargetPath( [in] BSTR folder, [in] BSTR value );
00064     HRESULT GetSourcePath( [in] BSTR folder, [out, size_is(*size)] BSTR value, [in, out] DWORD *size );
00065     HRESULT GetMode( [in] MSIRUNMODE mode, [out] BOOL *ret );
00066     HRESULT SetMode( [in] MSIRUNMODE mode, [in] BOOL state );
00067     HRESULT GetFeatureState( [in] BSTR feature, [out] INSTALLSTATE *installed, [out] INSTALLSTATE *action );
00068     HRESULT SetFeatureState( [in] BSTR feature, [in] INSTALLSTATE state );
00069     HRESULT GetComponentState( [in] BSTR component, [out] INSTALLSTATE *installed, [out] INSTALLSTATE *action );
00070     HRESULT SetComponentState( [in] BSTR component, [in] INSTALLSTATE state );
00071     HRESULT GetLanguage( [out] LANGID *language );
00072     HRESULT SetInstallLevel( [in] int level );
00073     HRESULT FormatRecord( [in] MSIHANDLE record, [out] BSTR *value );
00074     HRESULT EvaluateCondition( [in] BSTR condition );
00075     HRESULT GetFeatureCost( [in] BSTR feature, [in] INT cost_tree, [in] INSTALLSTATE state, [out] INT *cost );
00076     HRESULT EnumComponentCosts( [in] BSTR component, [in] DWORD index, [in] INSTALLSTATE state,
00077                                 [out, size_is(*buflen)] BSTR drive, [in, out] DWORD *buflen, [out] INT *cost, [out] INT *temp );
00078 }
00079 
00080 [
00081     uuid(56D58B64-8780-4c22-A8BC-8B0B29E4A9F8),
00082     oleautomation,
00083     object
00084 ]
00085 interface IWineMsiRemoteCustomAction : IUnknown
00086 {
00087     HRESULT GetActionInfo( [in] LPCGUID guid, [out] INT *type, [out] MSIHANDLE *handle, [out] BSTR *dllname,
00088                            [out] BSTR *function, [out] IWineMsiRemotePackage **package );
00089 }
00090 
00091 [
00092     uuid(000c101c-0000-0000-c000-000000000046),
00093     oleautomation,
00094     object
00095 ]
00096 interface IMsiServer : IUnknown
00097 {
00098     /* FIXME: methods */
00099 }
00100 
00101 [
00102     uuid(000c101d-0000-0000-c000-000000000046),
00103     oleautomation,
00104     object
00105 ]
00106 interface IMsiMessage : IUnknown
00107 {
00108     /* FIXME: methods */
00109 }
00110 
00111 [
00112     uuid(000c1025-0000-0000-c000-000000000046),
00113     oleautomation,
00114     object
00115 ]
00116 interface IMsiCustomAction : IUnknown
00117 {
00118     /* FIXME: methods */
00119 }
00120 
00121 [
00122     uuid(000c1033-0000-0000-c000-000000000046),
00123     oleautomation,
00124     object
00125 ]
00126 interface IMsiRemoteAPI : IUnknown
00127 {
00128     /* FIXME: methods */
00129 }
00130 
00131 [
00132     helpstring("Msi install server"),
00133     progid("IMsiServer"),
00134     uuid(000c101c-0000-0000-c000-000000000046)
00135 ]
00136 coclass MsiServer { interface IMsiServer; }
00137 
00138 [
00139     helpstring("Microsoft Windows Installer Message RPC"),
00140     progid("WindowsInstaller.Message"),
00141     uuid(000c101d-0000-0000-c000-000000000046)
00142 ]
00143 coclass MsiServerMessage { interface IMsiMessage; }
00144 
00145 [
00146     threading(both),
00147     uuid(000c103e-0000-0000-c000-000000000046)
00148 ]
00149 coclass PSFactoryBuffer { interface IPSFactoryBuffer; }
00150 
00151 [
00152     uuid(000c1082-0000-0000-c000-000000000046)
00153 ]
00154 coclass MsiTransform { }
00155 
00156 [
00157     uuid(000c1084-0000-0000-c000-000000000046)
00158 ]
00159 coclass MsiDatabase { }
00160 
00161 [
00162     uuid(000c1086-0000-0000-c000-000000000046)
00163 ]
00164 coclass MsiPatch { }
00165 
00166 [
00167     threading(apartment),
00168     uuid(000c1094-0000-0000-c000-000000000046)
00169 ]
00170 /* FIXME: unidentified class */
00171 coclass MsiServerX3 { interface IMsiServer; }
00172 
00173 [
00174     uuid(ba26e6fa-4f27-4f56-953a-3f90272018aa)
00175 ]
00176 coclass WineMsiRemoteCustomAction { interface WineMsiRemoteCustomAction; }
00177 
00178 [
00179     uuid(902b3592-9d08-4dfd-a593-d07c52546421)
00180 ]
00181 coclass WineMsiRemotePackage { interface WineMsiRemotePackage; }
00182 
00183 
00184 [ uuid(000C1092-0000-0000-C000-000000000046), version(1.0) ]
00185 library WindowsInstaller
00186 {
00187     dispinterface Installer;
00188     dispinterface Record;
00189     dispinterface Session;
00190     dispinterface Database;
00191     dispinterface SummaryInfo;
00192     dispinterface View;
00193     dispinterface UIPreview;
00194     dispinterface FeatureInfo;
00195     dispinterface RecordList;
00196     dispinterface StringList;
00197     dispinterface Product;
00198     dispinterface Patch;
00199 
00200     typedef enum {
00201         msiInstallStateNotUsed = -7,
00202         msiInstallStateBadConfig = -6,
00203         msiInstallStateIncomplete = -5,
00204         msiInstallStateSourceAbsent = -4,
00205         msiInstallStateInvalidArg = -2,
00206         msiInstallStateUnknown = -1,
00207         msiInstallStateBroken = 0,
00208         msiInstallStateAdvertised = 1,
00209         msiInstallStateRemoved = 1,
00210         msiInstallStateAbsent = 2,
00211         msiInstallStateLocal = 3,
00212         msiInstallStateSource = 4,
00213         msiInstallStateDefault = 5
00214     } MsiInstallState;
00215 
00216     typedef enum {
00217         msiOpenDatabaseModeReadOnly = 0,
00218         msiOpenDatabaseModeTransact = 1,
00219         msiOpenDatabaseModeDirect = 2,
00220         msiOpenDatabaseModeCreate = 3,
00221         msiOpenDatabaseModeCreateDirect = 4,
00222         msiOpenDatabaseModePatchFile = 32
00223     } MsiOpenDatabaseMode;
00224 
00225     typedef enum {
00226         msiUILevelNoChange = 0,
00227         msiUILevelDefault = 1,
00228         msiUILevelNone = 2,
00229         msiUILevelBasic = 3,
00230         msiUILevelReduced = 4,
00231         msiUILevelFull = 5,
00232         msiUILevelHideCancel = 32,
00233         msiUILevelProgressOnly = 64,
00234         msiUILevelEndDialog = 128,
00235         msiUILevelSourceResOnly = 256
00236     } MsiUILevel;
00237 
00238     [ uuid(000C1090-0000-0000-C000-000000000046) ]
00239     dispinterface Installer
00240     {
00241     properties:
00242         [id(DISPID_INSTALLER_UILEVEL)]
00243             MsiUILevel UILevel;
00244     methods:
00245         [id(DISPID_INSTALLER_CREATERECORD)]
00246             Record *CreateRecord([in] long Count);
00247         [id(DISPID_INSTALLER_OPENPACKAGE)]
00248             Session* OpenPackage(
00249                 [in] VARIANT PackagePath,
00250                 [in, optional, defaultvalue(0)] long Options);
00251         [id(DISPID_INSTALLER_OPENPRODUCT)]
00252             Session* OpenProduct(
00253                 [in] BSTR ProductCode);
00254         [id(DISPID_INSTALLER_SUMMARYINFORMATION)]
00255             SummaryInfo* SummaryInformation(
00256                 [in] BSTR PackagePath,
00257                 [in, optional, defaultvalue(0)] long UpdateCount);
00258         [id(DISPID_INSTALLER_OPENDATABASE)]
00259             Database *OpenDatabase(
00260                     [in] BSTR DatabasePath,
00261                     [in] VARIANT OpenMode);
00262         [id(DISPID_INSTALLER_ENABLELOG)]
00263             void EnableLog(
00264                     [in] BSTR LogMode,
00265                     [in] BSTR LogFile);
00266         [id(DISPID_INSTALLER_INSTALLPRODUCT)]
00267             void InstallProduct(
00268                 [in] BSTR PackagePath,
00269                 [in, optional, defaultvalue("0")] BSTR PropertyValues);
00270         [id(DISPID_INSTALLER_VERSION)]
00271             BSTR Version();
00272         [id(DISPID_INSTALLER_LASTERRORRECORD)]
00273             Record* LastErrorRecord();
00274         [id(DISPID_INSTALLER_REGISTRYVALUE), propget]
00275             BSTR RegistryValue(
00276                 [in] VARIANT Root,
00277                 [in] BSTR Key,
00278                 [in, optional] VARIANT Value);
00279         [id(DISPID_INSTALLER_ENVIRONMENT), propget]
00280             BSTR Environment([in] BSTR Variable);
00281         [id(DISPID_INSTALLER_ENVIRONMENT), propput]
00282             void Environment(
00283                 [in] BSTR Variable,
00284                 [in] BSTR rhs);
00285         [id(DISPID_INSTALLER_FILEATTRIBUTES)]
00286             long FileAttributes([in] BSTR FilePath);
00287         [id(DISPID_INSTALLER_FILESIZE)]
00288             long FileSize([in] BSTR FilePath);
00289         [id(DISPID_INSTALLER_FILEVERSION)]
00290             BSTR FileVersion(
00291                 [in] BSTR FilePath,
00292                 [in, optional] VARIANT Language);
00293         [id(DISPID_INSTALLER_PRODUCTSTATE), propget]
00294             MsiInstallState ProductState(
00295                 [in] BSTR Product);
00296         [id(DISPID_INSTALLER_PRODUCTINFO), propget]
00297             BSTR ProductInfo(
00298                 [in] BSTR Product,
00299                 [in] BSTR Attribute);
00300         [id(DISPID_INSTALLER_PRODUCTS), propget]
00301             StringList *Products();
00302         [id(DISPID_INSTALLER_RELATEDPRODUCTS), propget]
00303             StringList *RelatedProducts(
00304                 [in] BSTR UpgradeCode);
00305     }
00306 
00307     [ uuid(000C1093-0000-0000-C000-000000000046) ]
00308     dispinterface Record
00309     {
00310     properties:
00311     methods:
00312         [id(DISPID_RECORD_STRINGDATA), propget]
00313             BSTR StringData([in] long Field);
00314         [id(DISPID_RECORD_STRINGDATA), propput]
00315             void StringData(
00316                 [in] long Field,
00317                 [in] BSTR rhs);
00318         [id(DISPID_RECORD_INTEGERDATA), propget]
00319             long IntegerData([in] long Field);
00320         [id(DISPID_RECORD_INTEGERDATA), propput]
00321             void IntegerData(
00322                 [in] long Field,
00323                 [in] long rhs);
00324         [id(DISPID_RECORD_FIELDCOUNT), propget]
00325             long FieldCount();
00326     }
00327 
00328     [ uuid(000C1095-0000-0000-C000-000000000046) ]
00329     dispinterface StringList
00330     {
00331         properties:
00332         methods:
00333         [id(DISPID_LIST__NEWENUM)]
00334             IUnknown _NewEnum();
00335         [id(DISPID_LIST_ITEM), propget]
00336             BSTR Item(long Index);
00337         [id(DISPID_LIST_COUNT), propget]
00338             long Count();
00339     }
00340 
00341     [ uuid(000C1096-0000-0000-C000-000000000046) ]
00342     dispinterface RecordList
00343     {
00344         properties:
00345         methods:
00346     }
00347 
00348     [ uuid(000C109A-0000-0000-C000-000000000046) ]
00349     dispinterface UIPreview
00350     {
00351         properties:
00352         methods:
00353     }
00354 
00355     [ uuid(000C109B-0000-0000-C000-000000000046) ]
00356     dispinterface SummaryInfo
00357     {
00358         properties:
00359         methods:
00360         [id(DISPID_SUMMARYINFO_PROPERTY), propget]
00361             VARIANT Property([in] long Pid);
00362         [id(DISPID_SUMMARYINFO_PROPERTY), propput]
00363             void Property(
00364                 [in] long Pid,
00365                 [in] VARIANT rhs);
00366         [id(DISPID_SUMMARYINFO_PROPERTYCOUNT), propget]
00367             long PropertyCount();
00368     }
00369 
00370     typedef enum {
00371         msiViewModifySeek = -1,
00372         msiViewModifyRefresh = 0,
00373         msiViewModifyInsert = 1,
00374         msiViewModifyUpdate = 2,
00375         msiViewModifyAssign = 3,
00376         msiViewModifyReplace = 4,
00377         msiViewModifyMerge = 5,
00378         msiViewModifyDelete = 6,
00379         msiViewModifyInsertTemporary = 7,
00380         msiViewModifyValidate = 8,
00381         msiViewModifyValidateNew = 9,
00382         msiViewModifyValidateField = 10,
00383         msiViewModifyValidateDelete = 11,
00384     } _MsiViewModify;                                /* Added underscore to avoid conflict with function name */
00385 
00386     [ uuid(000C109C-0000-0000-C000-000000000046) ]
00387     dispinterface View
00388     {
00389         properties:
00390         methods:
00391         [id(DISPID_VIEW_EXECUTE)]
00392             void Execute([in, optional, defaultvalue(0)] Record *Params);
00393         [id(DISPID_VIEW_FETCH)]
00394             Record* Fetch();
00395         [id(DISPID_VIEW_MODIFY)]
00396             void Modify(
00397                 [in] _MsiViewModify Mode,
00398                 Record *Record);
00399         [id(DISPID_VIEW_CLOSE)]
00400             void Close();
00401     }
00402 
00403     [ uuid(000C109D-0000-0000-C000-000000000046) ]
00404     dispinterface Database
00405     {
00406         properties:
00407         methods:
00408         [id(DISPID_DATABASE_OPENVIEW)]
00409             View* OpenView([in] BSTR Sql);
00410         [id(DISPID_DATABASE_SUMMARYINFORMATION), propget]
00411             SummaryInfo *SummaryInformation([in, optional, defaultvalue(0)] long UpdateCount);
00412     }
00413 
00414     typedef enum {
00415         msiDoActionStatusNoAction = 0,
00416         msiDoActionStatusSuccess = 1,
00417         msiDoActionStatusUserExit = 2,
00418         msiDoActionStatusFailure = 3,
00419         msiDoActionStatusSuspend = 4,
00420         msiDoActionStatusFinished = 5,
00421         msiDoActionStatusWrongState = 6,
00422         msiDoActionStatusBadActionData = 7
00423     } MsiDoActionStatus;
00424 
00425     typedef enum {
00426         msiRunModeAdmin = 0,
00427         msiRunModeAdvertise = 1,
00428         msiRunModeMaintenance = 2,
00429         msiRunModeRollbackEnabled = 3,
00430         msiRunModeLogEnabled = 4,
00431         msiRunModeOperations = 5,
00432         msiRunModeRebootAtEnd = 6,
00433         msiRunModeRebootNow = 7,
00434         msiRunModeCabinet = 8,
00435         msiRunModeSourceShortNames = 9,
00436         msiRunModeTargetShortNames = 10,
00437         msiRunModeWindows9x = 12,
00438         msiRunModeZawEnabled = 13,
00439         msiRunModeScheduled = 16,
00440         msiRunModeRollback = 17,
00441         msiRunModeCommit = 18
00442     } MsiRunMode;
00443 
00444     typedef enum {
00445         msiEvaluateConditionFalse = 0,
00446         msiEvaluateConditionTrue = 1,
00447         msiEvaluateConditionNone = 2,
00448         msiEvaluateConditionError = 3
00449     } _MsiEvaluateCondition;           /* Added underscore to avoid conflict with function name */
00450 
00451     typedef enum {
00452         msiMessageStatusError = -1,
00453         msiMessageStatusNone = 0,
00454         msiMessageStatusOk = 1,
00455         msiMessageStatusCancel = 2,
00456         msiMessageStatusAbort = 3,
00457         msiMessageStatusRetry = 4,
00458         msiMessageStatusIgnore = 5,
00459         msiMessageStatusYes = 6,
00460         msiMessageStatusNo = 7
00461     } MsiMessageStatus;
00462 
00463     typedef enum {
00464         msiMessageTypeFatalExit = 0,
00465         msiMessageTypeError          = 0x01000000,
00466         msiMessageTypeWarning        = 0x02000000,
00467         msiMessageTypeUser           = 0x03000000,
00468         msiMessageTypeInfo           = 0x04000000,
00469         msiMessageTypeFilesInUse     = 0x05000000,
00470         msiMessageTypeResolveSource  = 0x06000000,
00471         msiMessageTypeOutOfDiskSpace = 0x07000000,
00472         msiMessageTypeActionStart    = 0x08000000,
00473         msiMessageTypeActionData     = 0x09000000,
00474         msiMessageTypeProgress       = 0x0a000000,
00475         msiMessageTypeCommonData     = 0x0b000000,
00476         msiMessageTypeOk = 0,
00477         msiMessageTypeOkCancel = 1,
00478         msiMessageTypeAbortRetryIgnore = 2,
00479         msiMessageTypeYesNoCancel = 3,
00480         msiMessageTypeYesNo = 4,
00481         msiMessageTypeRetryCancel = 5,
00482         msiMessageTypeDefault1 = 0,
00483         msiMessageTypeDefault2 = 256,
00484         msiMessageTypeDefault3 = 512
00485     } MsiMessageType;
00486 
00487     [ uuid(000C109E-0000-0000-C000-000000000046) ]
00488     dispinterface Session
00489     {
00490     properties:
00491     methods:
00492         [id(DISPID_SESSION_INSTALLER), propget]
00493             Installer *Installer();
00494         [id(DISPID_SESSION_PROPERTY), propget]
00495             BSTR Property([in] BSTR Name);
00496         [id(DISPID_SESSION_PROPERTY), propput]
00497             void Property(
00498                 [in] BSTR Name,
00499                 [in] BSTR rhs);
00500         [id(DISPID_SESSION_LANGUAGE), propget]
00501             long Language();
00502         [id(DISPID_SESSION_MODE), propget]
00503             VARIANT_BOOL Mode([in] MsiRunMode Flag);
00504         [id(DISPID_SESSION_MODE), propput]
00505             void Mode(
00506                 [in] MsiRunMode Flag,
00507                 [in] VARIANT_BOOL rhs);
00508         [id(DISPID_SESSION_DATABASE), propget]
00509             Database* Database();
00510         [id(DISPID_SESSION_DOACTION)]
00511             MsiDoActionStatus DoAction([in] BSTR Action);
00512         [id(DISPID_SESSION_EVALUATECONDITION)]
00513             _MsiEvaluateCondition EvaluateCondition([in] BSTR Expression);
00514         [id(DISPID_SESSION_MESSAGE)]
00515             MsiMessageStatus Message(
00516                 [in] MsiMessageType Kind,
00517                 [in] Record *Record);
00518         [id(DISPID_SESSION_FEATURECURRENTSTATE), propget]
00519             MsiInstallState FeatureCurrentState([in] BSTR Feature);
00520         [id(DISPID_SESSION_FEATUREREQUESTSTATE), propget]
00521             MsiInstallState FeatureRequestState([in] BSTR Feature);
00522         [id(DISPID_SESSION_FEATUREREQUESTSTATE), propput]
00523             void FeatureRequestState(
00524                 [in] BSTR Feature,
00525                 [in] MsiInstallState rhs);
00526         [id(DISPID_SESSION_SETINSTALLLEVEL)]
00527             void SetInstallLevel([in] long Level);
00528     }
00529 
00530     [ uuid(000C109F-0000-0000-C000-000000000046) ]
00531     dispinterface FeatureInfo
00532     {
00533         properties:
00534         methods:
00535     }
00536 
00537     [ uuid(000C10A0-0000-0000-C000-000000000046) ]
00538     dispinterface Product
00539     {
00540         properties:
00541         methods:
00542     }
00543 
00544     [ uuid(000C10A1-0000-0000-C000-000000000046) ]
00545     dispinterface Patch
00546     {
00547         properties:
00548         methods:
00549     }
00550 
00551     [
00552        helpstring("Microsoft Windows Installer"),
00553        threading(apartment),
00554        progid("WindowsInstaller.Installer"),
00555        uuid(000c1090-0000-0000-c000-000000000046)
00556     ]
00557     coclass MsiInstaller { interface Installer; }
00558 }

Generated on Sat May 26 2012 04:23:50 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.