| OLD | NEW | 
|---|
| 1 /** | 1 /** | 
| 2 * \file property.cpp Implementation of Property class etc. | 2 * \file property.cpp Implementation of Property class etc. | 
| 3 */ | 3 */ | 
| 4 | 4 | 
| 5 #include "installer-lib.h" | 5 #include "installer-lib.h" | 
| 6 #include "property.h" | 6 #include "property.h" | 
| 7 #include "session.h" | 7 #include "session.h" | 
| 8 #include <msiquery.h> | 8 #include <msiquery.h> | 
| 9 #include <memory> | 9 #include <memory> | 
| 10 | 10 | 
| (...skipping 22 matching lines...) Expand all  Loading... | 
| 33   UINT x = MsiGetPropertyW( handle, name.c_str(), buffer1, & length ) ; | 33   UINT x = MsiGetPropertyW( handle, name.c_str(), buffer1, & length ) ; | 
| 34   switch ( x ) | 34   switch ( x ) | 
| 35   { | 35   { | 
| 36   case ERROR_SUCCESS: | 36   case ERROR_SUCCESS: | 
| 37     // This call might succeed, which means the return value was short enough to
     fit into the buffer. | 37     // This call might succeed, which means the return value was short enough to
     fit into the buffer. | 
| 38     return std::wstring( buffer1, length ) ; | 38     return std::wstring( buffer1, length ) ; | 
| 39   case ERROR_MORE_DATA: | 39   case ERROR_MORE_DATA: | 
| 40     // Do nothing yet. | 40     // Do nothing yet. | 
| 41     break ; | 41     break ; | 
| 42   default: | 42   default: | 
| 43     throw windows_api_error( "MsiGetPropertyW", x, "fixed buffer" ) ; | 43     throw WindowsApiError( "MsiGetPropertyW", x, "fixed buffer" ) ; | 
| 44   } | 44   } | 
| 45   // Assert we received ERROR_MORE_DATA | 45   // Assert we received ERROR_MORE_DATA | 
| 46   // unique_ptr handles deallocation transparently | 46   // unique_ptr handles deallocation transparently | 
| 47   std::unique_ptr< WCHAR[] > buffer2( new WCHAR[ length ] ) ; | 47   std::unique_ptr< WCHAR[] > buffer2( new WCHAR[ length ] ) ; | 
| 48   x = MsiGetPropertyW( handle, name.c_str(), buffer2.get(), & length ) ; | 48   x = MsiGetPropertyW( handle, name.c_str(), buffer2.get(), & length ) ; | 
| 49   switch ( x ) | 49   switch ( x ) | 
| 50   { | 50   { | 
| 51   case ERROR_SUCCESS: | 51   case ERROR_SUCCESS: | 
| 52     return std::wstring( buffer2.get(), length ) ; | 52     return std::wstring( buffer2.get(), length ) ; | 
| 53   default: | 53   default: | 
| 54     throw windows_api_error( "MsiGetPropertyW", x, "allocated buffer" ) ; | 54     throw WindowsApiError( "MsiGetPropertyW", x, "allocated buffer" ) ; | 
| 55   } | 55   } | 
| 56 } | 56 } | 
| 57 | 57 | 
| 58 /** | 58 /** | 
| 59 * \par Implementation | 59 * \par Implementation | 
| 60 * The center of the implementation is the <a href="http://msdn.microsoft.com/en-
    us/library/windows/desktop/aa370391%28v=vs.85%29.aspx">MsiSetProperty function</
    a>. | 60 * The center of the implementation is the <a href="http://msdn.microsoft.com/en-
    us/library/windows/desktop/aa370391%28v=vs.85%29.aspx">MsiSetProperty function</
    a>. | 
| 61 */ | 61 */ | 
| 62 void Property::operator=( const std::wstring & value ) | 62 void Property::operator=( const std::wstring & value ) | 
| 63 { | 63 { | 
| 64   UINT x = MsiSetPropertyW( handle, name.c_str(), value.c_str() ) ; | 64   UINT x = MsiSetPropertyW( handle, name.c_str(), value.c_str() ) ; | 
| 65   if ( x != ERROR_SUCCESS ) | 65   if ( x != ERROR_SUCCESS ) | 
| 66   { | 66   { | 
| 67     throw windows_api_error( "MsiSetPropertyW", x ) ; | 67     throw WindowsApiError( "MsiSetPropertyW", x ) ; | 
| 68   } | 68   } | 
| 69 } | 69 } | 
| OLD | NEW | 
|---|