OLD | NEW |
(Empty) | |
| 1 /** |
| 2 * \file database.h MSI database |
| 3 */ |
| 4 |
| 5 #ifndef DATABASE_H |
| 6 #define DATABASE_H |
| 7 |
| 8 #include <string> |
| 9 #include "windows.h" |
| 10 #include "msi.h" |
| 11 |
| 12 #include "session.h" |
| 13 |
| 14 /** |
| 15 * A Windows Installer database as contained in an MSI file. |
| 16 * |
| 17 * The API for MSI databases is shared between installation and non-installation
contexts. |
| 18 * Roughly speaking, outside an installation the database supports both read and
write, |
| 19 * but inside an installation the database is read-only. |
| 20 * The life cycle functions are not shared, in addition. |
| 21 * Outside of these restrictions, however, the API is mostly common. |
| 22 * This class is the base class for the common API. |
| 23 * Subclasses provide public constructors and provide access to API calls not in
common. |
| 24 */ |
| 25 class Database |
| 26 { |
| 27 protected: |
| 28 /** |
| 29 * Protected constructor. Life cycle depends strongly on context. |
| 30 */ |
| 31 Database( MSIHANDLE handle ); |
| 32 |
| 33 /** |
| 34 * Destructor. |
| 35 */ |
| 36 ~Database(); |
| 37 |
| 38 protected: |
| 39 /** |
| 40 */ |
| 41 MSIHANDLE handle; |
| 42 |
| 43 private: |
| 44 /** |
| 45 * Private copy constructor is declared but not defined. |
| 46 */ |
| 47 Database( const Database & ); |
| 48 |
| 49 /** |
| 50 * Private assignment operator is declared but not defined. |
| 51 */ |
| 52 Database & operator=( const Database & ) ; |
| 53 }; |
| 54 |
| 55 /** |
| 56 * A Windows Installer database in an installation context. |
| 57 */ |
| 58 class Installation_Database : public Database |
| 59 { |
| 60 public: |
| 61 /** |
| 62 * The constructor of a database in an installation context has no arguments b
ecause the database is a part of that context. |
| 63 */ |
| 64 Installation_Database( Immediate_Session & session ); |
| 65 }; |
| 66 |
| 67 /** |
| 68 * A Windows Installer database in a non-installation context. |
| 69 */ |
| 70 class Non_Installation_Database : public Database |
| 71 { |
| 72 }; |
| 73 |
| 74 #endif |
OLD | NEW |