From: Rob M. <ro...@us...> - 2006-03-01 08:51:10
|
Update of /cvsroot/wix/wix/src/dutil In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21554/src/dutil Modified Files: aclutil.cpp aclutil.h cabcutil.h cabutil.h dirutil.h dutil.h fileutil.cpp fileutil.h inetutil.h memutil.h metautil.h perfutil.h resutil.h rssutil.h sqlutil.cpp sqlutil.h strutil.h timeutil.h xmlutil.h Log Message: DerekC: Fix a bug with duplicate section symbols (like two fragment with the same Id). DerekC: SFBUG:1427916 - Fix poor RemoveFile error message. DerekC: Two decompiler bugs: 1. Properly handle special sequence actions. 2. Handle registry value of "[~]". BobArnso: - Add WixUI_InstallDir dialog set (welcome > install dir > progress > finish) - Move dialog UI sequences out of WixUI_Common and into the dialogs themselves so custom sets can replace everything - Build a single wixui.wixlib instead of several separate .wixlibs (breaking change -- projects must now reference a particular WixUI set name) - Fix sfbug:1425869 (Controls extend beyond boundaries) DerekC: Require the RemoveFile/@Name attribute since RemoveFolder should cover the same functionality. BobArnso: To reduce localization effort, refactor common text (e.g., "Next" and "Cancel") to use global loc strings rather than dialog-specific loc strings. JRock: Cleaning up the RegisterVotive.bat file so that it doesn't need grep or sed. JRock: - Cleanup paths in the Votive project files. - Detect missing candle.exe and light.exe files in the build and give a more meaningful error. DerekC: Treat warnings as errors for all builds using wix tools. Also fix warnings related to recent changes. DerekC: Add support for auto-generated short file names in Shortcut elements. BobArnso: Add snskip target to wix.build to skip strong-name verification for just-built WiX binaries AaronSte: Create an exampleuuid type for use by Component GUID and UpgradeCode in wix.xsd AaronSte: Fix other instances of sfbug:1425869 (Controls extend beyond boundaries) RobMen: SFBUG:1429463 - allow empty strings in loc files RobMen: SFBUG:1432746 - loc path should be quoted in NAnt LightTask AaronSte: Updated wix.xsd to name GUID types consistently and disallow blank GUIDs for UpgradeCode DerekC: Random bug fixes: - Support binary columns in custom tables. - Support decompiling msi files with no _Validation table. - Properly decompile summary information values that have not been set. - Support nullable binary columns in the binder. DerekC: Fix SF1266391: spaces in preprocessor define statements may be lost RobMen: SFBUG:1427907 - Merge/@Language can be localized. SFBUG:1420851 - Merge Modules can have Error tables (with a warning). Correctly Modularize ActionText.Template and Error.Template RobMen: SFBUG:1366769 - require RemoveExistingProducts to be scheduled with Upgrade table. RobMen: SFBUG:1274075 - specify calling convention in public WiX headers BobArnso: - Fix faulty detection of VSIP and Extras SDKs - Update Votive installer to latest layout BobArnso: Add dutil.{h lib} and wcautil.{h lib} to binaries .zip Index: xmlutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/xmlutil.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** xmlutil.h 18 Jan 2006 10:51:24 -0000 1.4 --- xmlutil.h 1 Mar 2006 08:50:32 -0000 1.5 *************** *** 30,119 **** extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMSchemaCollection = {0x373984C8, 0xB845, 0x449B, {0x91, 0xE7, 0x45, 0xAC, 0x83, 0x03, 0x6A, 0xDE}}; ! HRESULT XmlInitialize( ); ! void XmlUninitialize( ); ! HRESULT XmlCreateElement( __in IXMLDOMDocument *pixdDocument, __in LPCWSTR wzElementName, __out IXMLDOMElement **ppixnElement ); ! HRESULT XmlCreateDocument( __in_opt LPCWSTR pwzElementName, __out IXMLDOMDocument** ppixdDocument, __out_opt IXMLDOMElement** ppixeRootElement = NULL ); ! HRESULT XmlLoadDocument( __in LPCWSTR wzDocument, __out IXMLDOMDocument** ppixdDocument ); ! HRESULT XmlLoadDocumentFromFile( __in LPCWSTR wzPath, __out IXMLDOMDocument** ppixdDocument ); ! HRESULT XmlSelectSingleNode( __in IXMLDOMNode* pixnParent, __in LPCWSTR wzXPath, __out IXMLDOMNode **ppixnChild ); ! HRESULT XmlSetAttribute( __in IXMLDOMNode* pixnNode, __in LPCWSTR pwzAttribute, __in LPCWSTR pwzAttributeValue ); ! HRESULT XmlCreateTextNode( __in IXMLDOMDocument *pixdDocument, __in LPCWSTR wzText, __out IXMLDOMText **ppixnTextNode ); ! HRESULT XmlGetText( __in IXMLDOMNode* pixnNode, __out BSTR* pbstrText ); ! HRESULT XmlGetAttribute( __in IXMLDOMNode* pixnNode, __in LPCWSTR pwzAttribute, __out BSTR* pbstrAttributeValue ); ! HRESULT XmlGetAttributeNumber( __in IXMLDOMNode* pixnNode, __in LPCWSTR pwzAttribute, __out DWORD* pdwValue ); ! HRESULT XmlGetNamedItem( __in IXMLDOMNamedNodeMap *pixnmAttributes, __in_opt LPCWSTR wzName, __out IXMLDOMNode **ppixnNamedItem ); ! HRESULT XmlSetText( __in IXMLDOMNode* pixnNode, __in LPCWSTR pwzText ); ! HRESULT XmlCreateChild( __in IXMLDOMNode* pixnParent, __in LPCWSTR pwzElementType, __out IXMLDOMNode** ppixnChild ); ! HRESULT XmlRemoveAttribute( __in IXMLDOMNode* pixnNode, __in LPCWSTR pwzAttribute ); ! HRESULT XmlSelectNodes( __in IXMLDOMNode* pixnParent, __in LPCWSTR wzXPath, __out IXMLDOMNodeList **ppixnChild ); ! HRESULT XmlNextElement( __in IXMLDOMNodeList* pixnl, __out IXMLDOMNode** pixnElement, __out BSTR* pbstrElement ); ! HRESULT XmlRemoveChildren( __in IXMLDOMNode* pixnSource, __in LPCWSTR pwzXPath ); ! HRESULT XmlSaveDocument( __in IXMLDOMDocument* pixdDocument, __inout LPCWSTR wzPath ); --- 30,126 ---- extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMSchemaCollection = {0x373984C8, 0xB845, 0x449B, {0x91, 0xE7, 0x45, 0xAC, 0x83, 0x03, 0x6A, 0xDE}}; ! #ifdef __cplusplus ! extern "C" { ! #endif ! ! HRESULT DAPI XmlInitialize( ); ! void DAPI XmlUninitialize( ); ! HRESULT DAPI XmlCreateElement( __in IXMLDOMDocument *pixdDocument, __in LPCWSTR wzElementName, __out IXMLDOMElement **ppixnElement ); ! HRESULT DAPI XmlCreateDocument( __in_opt LPCWSTR pwzElementName, __out IXMLDOMDocument** ppixdDocument, __out_opt IXMLDOMElement** ppixeRootElement = NULL ); ! HRESULT DAPI XmlLoadDocument( __in LPCWSTR wzDocument, __out IXMLDOMDocument** ppixdDocument ); ! HRESULT DAPI XmlLoadDocumentFromFile( __in LPCWSTR wzPath, __out IXMLDOMDocument** ppixdDocument ); ! HRESULT DAPI XmlSelectSingleNode( __in IXMLDOMNode* pixnParent, __in LPCWSTR wzXPath, __out IXMLDOMNode **ppixnChild ); ! HRESULT DAPI XmlSetAttribute( __in IXMLDOMNode* pixnNode, __in LPCWSTR pwzAttribute, __in LPCWSTR pwzAttributeValue ); ! HRESULT DAPI XmlCreateTextNode( __in IXMLDOMDocument *pixdDocument, __in LPCWSTR wzText, __out IXMLDOMText **ppixnTextNode ); ! HRESULT DAPI XmlGetText( __in IXMLDOMNode* pixnNode, __out BSTR* pbstrText ); ! HRESULT DAPI XmlGetAttribute( __in IXMLDOMNode* pixnNode, __in LPCWSTR pwzAttribute, __out BSTR* pbstrAttributeValue ); ! HRESULT DAPI XmlGetAttributeNumber( __in IXMLDOMNode* pixnNode, __in LPCWSTR pwzAttribute, __out DWORD* pdwValue ); ! HRESULT DAPI XmlGetNamedItem( __in IXMLDOMNamedNodeMap *pixnmAttributes, __in_opt LPCWSTR wzName, __out IXMLDOMNode **ppixnNamedItem ); ! HRESULT DAPI XmlSetText( __in IXMLDOMNode* pixnNode, __in LPCWSTR pwzText ); ! HRESULT DAPI XmlCreateChild( __in IXMLDOMNode* pixnParent, __in LPCWSTR pwzElementType, __out IXMLDOMNode** ppixnChild ); ! HRESULT DAPI XmlRemoveAttribute( __in IXMLDOMNode* pixnNode, __in LPCWSTR pwzAttribute ); ! HRESULT DAPI XmlSelectNodes( __in IXMLDOMNode* pixnParent, __in LPCWSTR wzXPath, __out IXMLDOMNodeList **ppixnChild ); ! HRESULT DAPI XmlNextElement( __in IXMLDOMNodeList* pixnl, __out IXMLDOMNode** pixnElement, __out BSTR* pbstrElement ); ! HRESULT DAPI XmlRemoveChildren( __in IXMLDOMNode* pixnSource, __in LPCWSTR pwzXPath ); ! HRESULT DAPI XmlSaveDocument( __in IXMLDOMDocument* pixdDocument, __inout LPCWSTR wzPath ); + #ifdef __cplusplus + } + #endif Index: aclutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/aclutil.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** aclutil.h 18 Jan 2006 10:51:24 -0000 1.3 --- aclutil.h 1 Mar 2006 08:50:32 -0000 1.4 *************** *** 48,72 **** // functions ! HRESULT AclCheckAccess( __in HANDLE hToken, ACL_ACCESS* paa ); ! HRESULT AclCheckAdministratorAccess( __in HANDLE hToken ); ! HRESULT AclCheckLocalSystemAccess( __in HANDLE hToken ); ! HRESULT AclGetWellKnownSid( __in WELL_KNOWN_SID_TYPE wkst, __out PSID* ppsid ); ! HRESULT AclGetAccountSid( __in_opt LPCWSTR wzSystem, __in LPCWSTR wzAccount, __out PSID* ppsid ); ! HRESULT AclGetAccountSidString( __in LPCWSTR wzSystem, __in LPCWSTR wzAccount, --- 48,72 ---- // functions ! HRESULT DAPI AclCheckAccess( __in HANDLE hToken, ACL_ACCESS* paa ); ! HRESULT DAPI AclCheckAdministratorAccess( __in HANDLE hToken ); ! HRESULT DAPI AclCheckLocalSystemAccess( __in HANDLE hToken ); ! HRESULT DAPI AclGetWellKnownSid( __in WELL_KNOWN_SID_TYPE wkst, __out PSID* ppsid ); ! HRESULT DAPI AclGetAccountSid( __in_opt LPCWSTR wzSystem, __in LPCWSTR wzAccount, __out PSID* ppsid ); ! HRESULT DAPI AclGetAccountSidString( __in LPCWSTR wzSystem, __in LPCWSTR wzAccount, *************** *** 74,78 **** ); ! HRESULT AclCreateDacl( __in_ecount(cDeny) ACL_ACE rgaaDeny[], __in DWORD cDeny, --- 74,78 ---- ); ! HRESULT DAPI AclCreateDacl( __in_ecount(cDeny) ACL_ACE rgaaDeny[], __in DWORD cDeny, *************** *** 81,85 **** __out ACL** ppAcl ); ! HRESULT AclAddToDacl( __in ACL* pAcl, __in ACL_ACE rgaaDeny[], --- 81,85 ---- __out ACL** ppAcl ); ! HRESULT DAPI AclAddToDacl( __in ACL* pAcl, __in ACL_ACE rgaaDeny[], *************** *** 89,121 **** __out ACL** ppAclNew ); ! HRESULT AclMergeDacls( __in ACL* pAcl1, __in ACL* pAcl2, __out ACL** ppAclNew ); ! HRESULT AclCreateDaclOld( __in_ecount(cAclAccesses) ACL_ACCESS* paa, __in DWORD cAclAccesses, __out ACL** ppAcl ); ! HRESULT AclCreateSecurityDescriptor( __in_ecount(cAclAccesses) ACL_ACCESS* paa, __in DWORD cAclAccesses, __out SECURITY_DESCRIPTOR** ppsd ); ! HRESULT AclCreateSecurityDescriptorFromDacl( __in ACL* pACL, __out SECURITY_DESCRIPTOR** ppsd ); ! HRESULT AclCreateSecurityDescriptorFromString( __out SECURITY_DESCRIPTOR** ppsd, __in LPCWSTR wzSddlFormat, ... ); ! HRESULT AclDuplicateSecurityDescriptor( __in SECURITY_DESCRIPTOR* psd, __out SECURITY_DESCRIPTOR** ppsd ); ! HRESULT AclGetSecurityDescriptor( __in LPCWSTR wzObject, __in SE_OBJECT_TYPE sot, --- 89,121 ---- __out ACL** ppAclNew ); ! HRESULT DAPI AclMergeDacls( __in ACL* pAcl1, __in ACL* pAcl2, __out ACL** ppAclNew ); ! HRESULT DAPI AclCreateDaclOld( __in_ecount(cAclAccesses) ACL_ACCESS* paa, __in DWORD cAclAccesses, __out ACL** ppAcl ); ! HRESULT DAPI AclCreateSecurityDescriptor( __in_ecount(cAclAccesses) ACL_ACCESS* paa, __in DWORD cAclAccesses, __out SECURITY_DESCRIPTOR** ppsd ); ! HRESULT DAPI AclCreateSecurityDescriptorFromDacl( __in ACL* pACL, __out SECURITY_DESCRIPTOR** ppsd ); ! HRESULT __cdecl AclCreateSecurityDescriptorFromString( __out SECURITY_DESCRIPTOR** ppsd, __in LPCWSTR wzSddlFormat, ... ); ! HRESULT DAPI AclDuplicateSecurityDescriptor( __in SECURITY_DESCRIPTOR* psd, __out SECURITY_DESCRIPTOR** ppsd ); ! HRESULT DAPI AclGetSecurityDescriptor( __in LPCWSTR wzObject, __in SE_OBJECT_TYPE sot, *************** *** 123,133 **** ); ! HRESULT AclFreeSid( __in PSID psid ); ! HRESULT AclFreeDacl( __in ACL* pACL ); ! HRESULT AclFreeSecurityDescriptor( __in SECURITY_DESCRIPTOR* psd ); --- 123,133 ---- ); ! HRESULT DAPI AclFreeSid( __in PSID psid ); ! HRESULT DAPI AclFreeDacl( __in ACL* pACL ); ! HRESULT DAPI AclFreeSecurityDescriptor( __in SECURITY_DESCRIPTOR* psd ); Index: rssutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/rssutil.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** rssutil.h 18 Jan 2006 10:51:24 -0000 1.2 --- rssutil.h 1 Mar 2006 08:50:32 -0000 1.3 *************** *** 66,91 **** }; ! HRESULT RssInitialize( ); ! void RssUninitialize( ); ! HRESULT RssParseFromString( __in LPCWSTR wzRssString, __out RSS_CHANNEL **ppChannel ); ! HRESULT RssParseFromFile( __in LPCWSTR wzRssFile, __out RSS_CHANNEL **ppChannel ); ! //Adding this because delivery doesn't have the updated specstrings.h that windows build does #ifndef __in_xcount #define __in_xcount(size) #endif ! void RssFreeChannel( __in_xcount(pChannel->cItems) RSS_CHANNEL *pChannel ); --- 66,91 ---- }; ! HRESULT DAPI RssInitialize( ); ! void DAPI RssUninitialize( ); ! HRESULT DAPI RssParseFromString( __in LPCWSTR wzRssString, __out RSS_CHANNEL **ppChannel ); ! HRESULT DAPI RssParseFromFile( __in LPCWSTR wzRssFile, __out RSS_CHANNEL **ppChannel ); ! // Adding this until we have the updated specstrings.h #ifndef __in_xcount #define __in_xcount(size) #endif ! void DAPI RssFreeChannel( __in_xcount(pChannel->cItems) RSS_CHANNEL *pChannel ); Index: cabcutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/cabcutil.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** cabcutil.h 18 Jan 2006 10:51:24 -0000 1.3 --- cabcutil.h 1 Mar 2006 08:50:32 -0000 1.4 *************** *** 38,42 **** // functions ! HRESULT CabCBegin( __in LPCWSTR wzCab, __in LPCWSTR wzCabDir, --- 38,42 ---- // functions ! HRESULT DAPI CabCBegin( __in LPCWSTR wzCab, __in LPCWSTR wzCabDir, *************** *** 46,58 **** __out HANDLE *phContext ); ! HRESULT CabCNextCab( __in HANDLE hContext ); ! HRESULT CabCAddFile( __in LPCWSTR wzFile, __in LPCWSTR wzToken, __in HANDLE hContext ); ! HRESULT CabCFinish( __in HANDLE hContext ); --- 46,58 ---- __out HANDLE *phContext ); ! HRESULT DAPI CabCNextCab( __in HANDLE hContext ); ! HRESULT DAPI CabCAddFile( __in LPCWSTR wzFile, __in LPCWSTR wzToken, __in HANDLE hContext ); ! HRESULT DAPI CabCFinish( __in HANDLE hContext ); Index: fileutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/fileutil.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** fileutil.h 18 Jan 2006 10:51:24 -0000 1.5 --- fileutil.h 1 Mar 2006 08:50:32 -0000 1.6 *************** *** 22,47 **** #endif ! LPWSTR FileFromPath( __in LPCWSTR wzPath ); ! HRESULT FileVersionFromString( __in LPCWSTR wzVersion, __out DWORD *pdwVerMajor, __out DWORD* pdwVerMinor ); ! HRESULT FileSizeByHandle( __in HANDLE hFile, __out LONGLONG* pllSize ); ! BOOL FileExistsEx( __in LPCWSTR wzPath, __out_opt DWORD *pdwAttributes ); ! HRESULT FileRead( __out LPBYTE* ppbDest, __out DWORD* pcbDest, __in LPCWSTR wzSrcPath ); ! HRESULT FileEnsureMove( __in LPCWSTR wzSource, __in LPCWSTR wzTarget, --- 22,51 ---- #endif ! LPWSTR DAPI FileFromPath( __in LPCWSTR wzPath ); ! HRESULT DAPI FileResolvePath( ! __in LPCWSTR wzRelativePath, ! __out LPWSTR *ppwzFullPath ! ); ! HRESULT DAPI FileVersionFromString( __in LPCWSTR wzVersion, __out DWORD *pdwVerMajor, __out DWORD* pdwVerMinor ); ! HRESULT DAPI FileSizeByHandle( __in HANDLE hFile, __out LONGLONG* pllSize ); ! BOOL DAPI FileExistsEx( __in LPCWSTR wzPath, __out_opt DWORD *pdwAttributes ); ! HRESULT DAPI FileRead( __out LPBYTE* ppbDest, __out DWORD* pcbDest, __in LPCWSTR wzSrcPath ); ! HRESULT DAPI FileEnsureMove( __in LPCWSTR wzSource, __in LPCWSTR wzTarget, Index: sqlutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/sqlutil.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** sqlutil.h 18 Jan 2006 10:51:24 -0000 1.4 --- sqlutil.h 1 Mar 2006 08:50:32 -0000 1.5 *************** *** 40,44 **** // functions ! HRESULT SqlConnectDatabase( __in LPCWSTR wzServer, __in LPCWSTR wzInstance, --- 40,44 ---- // functions ! HRESULT DAPI SqlConnectDatabase( __in LPCWSTR wzServer, __in LPCWSTR wzInstance, *************** *** 49,62 **** __out IDBCreateSession** ppidbSession ); ! HRESULT SqlStartTransaction( __in IDBCreateSession* pidbSession, __out IDBCreateCommand** ppidbCommand, __out ITransaction** ppit ); ! HRESULT SqlEndTransaction( __in ITransaction* pit, __in BOOL fCommit ); ! HRESULT SqlDatabaseExists( __in LPCWSTR wzServer, __in LPCWSTR wzInstance, --- 49,62 ---- __out IDBCreateSession** ppidbSession ); ! HRESULT DAPI SqlStartTransaction( __in IDBCreateSession* pidbSession, __out IDBCreateCommand** ppidbCommand, __out ITransaction** ppit ); ! HRESULT DAPI SqlEndTransaction( __in ITransaction* pit, __in BOOL fCommit ); ! HRESULT DAPI SqlDatabaseExists( __in LPCWSTR wzServer, __in LPCWSTR wzInstance, *************** *** 67,76 **** __out BSTR* pbstrErrorDescription ); ! HRESULT SqlSessionDatabaseExists( __in IDBCreateSession* pidbSession, __in LPCWSTR wzDatabase, __out BSTR* pbstrErrorDescription ); ! HRESULT SqlDatabaseEnsureExists( __in LPCWSTR wzServer, __in LPCWSTR wzInstance, --- 67,76 ---- __out BSTR* pbstrErrorDescription ); ! HRESULT DAPI SqlSessionDatabaseExists( __in IDBCreateSession* pidbSession, __in LPCWSTR wzDatabase, __out BSTR* pbstrErrorDescription ); ! HRESULT DAPI SqlDatabaseEnsureExists( __in LPCWSTR wzServer, __in LPCWSTR wzInstance, *************** *** 83,87 **** __out BSTR* pbstrErrorDescription ); ! HRESULT SqlSessionDatabaseEnsureExists( __in IDBCreateSession* pidbSession, __in LPCWSTR wzDatabase, --- 83,87 ---- __out BSTR* pbstrErrorDescription ); ! HRESULT DAPI SqlSessionDatabaseEnsureExists( __in IDBCreateSession* pidbSession, __in LPCWSTR wzDatabase, *************** *** 90,94 **** __out BSTR* pbstrErrorDescription ); ! HRESULT SqlCreateDatabase( __in LPCWSTR wzServer, __in LPCWSTR wzInstance, --- 90,94 ---- __out BSTR* pbstrErrorDescription ); ! HRESULT DAPI SqlCreateDatabase( __in LPCWSTR wzServer, __in LPCWSTR wzInstance, *************** *** 101,105 **** __out BSTR* pbstrErrorDescription ); ! HRESULT SqlSessionCreateDatabase( __in IDBCreateSession* pidbSession, __in LPCWSTR wzDatabase, --- 101,105 ---- __out BSTR* pbstrErrorDescription ); ! HRESULT DAPI SqlSessionCreateDatabase( __in IDBCreateSession* pidbSession, __in LPCWSTR wzDatabase, *************** *** 108,112 **** __out BSTR* pbstrErrorDescription ); ! HRESULT SqlDropDatabase( __in LPCWSTR wzServer, __in LPCWSTR wzInstance, --- 108,112 ---- __out BSTR* pbstrErrorDescription ); ! HRESULT DAPI SqlDropDatabase( __in LPCWSTR wzServer, __in LPCWSTR wzInstance, *************** *** 117,126 **** __out BSTR* pbstrErrorDescription ); ! HRESULT SqlSessionDropDatabase( __in IDBCreateSession* pidbSession, __in LPCWSTR wzDatabase, __out BSTR* pbstrErrorDescription ); ! HRESULT SqlSessionExecuteQuery( __in IDBCreateSession* pidbSession, __in LPCWSTR wzSql, --- 117,126 ---- __out BSTR* pbstrErrorDescription ); ! HRESULT DAPI SqlSessionDropDatabase( __in IDBCreateSession* pidbSession, __in LPCWSTR wzDatabase, __out BSTR* pbstrErrorDescription ); ! HRESULT DAPI SqlSessionExecuteQuery( __in IDBCreateSession* pidbSession, __in LPCWSTR wzSql, *************** *** 129,133 **** __out BSTR* pbstrErrorDescription ); ! HRESULT SqlCommandExecuteQuery( __in IDBCreateCommand* pidbCommand, __in LPCWSTR wzSql, --- 129,133 ---- __out BSTR* pbstrErrorDescription ); ! HRESULT DAPI SqlCommandExecuteQuery( __in IDBCreateCommand* pidbCommand, __in LPCWSTR wzSql, *************** *** 135,139 **** __out DBROWCOUNT* pcRows ); ! HRESULT SqlGetErrorInfo( __in IUnknown* pObjectWithError, __in REFIID IID_InterfaceWithError, --- 135,139 ---- __out DBROWCOUNT* pcRows ); ! HRESULT DAPI SqlGetErrorInfo( __in IUnknown* pObjectWithError, __in REFIID IID_InterfaceWithError, Index: resutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/resutil.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** resutil.h 8 Dec 2005 01:02:32 -0000 1.1 --- resutil.h 1 Mar 2006 08:50:32 -0000 1.2 *************** *** 24,28 **** #endif ! HRESULT ResGetData( IN LPCSTR szDataName, OUT PVOID *ppv, --- 24,28 ---- #endif ! HRESULT DAPI ResGetData( IN LPCSTR szDataName, OUT PVOID *ppv, *************** *** 30,34 **** ); ! HRESULT ResSetData( IN LPCWSTR wzResourceFile, IN LPCSTR szDataName, --- 30,34 ---- ); ! HRESULT DAPI ResSetData( IN LPCWSTR wzResourceFile, IN LPCSTR szDataName, *************** *** 37,41 **** ); ! HRESULT ResExportDataToFile( IN LPCSTR szDataName, IN LPCWSTR wzTargetFile, --- 37,41 ---- ); ! HRESULT DAPI ResExportDataToFile( IN LPCSTR szDataName, IN LPCWSTR wzTargetFile, *************** *** 43,47 **** ); ! HRESULT ResImportDataFromFile( IN LPCWSTR wzTargetFile, IN LPCWSTR wzSourceFile, --- 43,47 ---- ); ! HRESULT DAPI ResImportDataFromFile( IN LPCWSTR wzTargetFile, IN LPCWSTR wzSourceFile, Index: fileutil.cpp =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/fileutil.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** fileutil.cpp 8 Feb 2006 09:25:31 -0000 1.8 --- fileutil.cpp 1 Mar 2006 08:50:32 -0000 1.9 *************** *** 46,49 **** --- 46,142 ---- /******************************************************************* + FileResolvePath - gets the full path to a file resolving environment + variables along the way. + + ********************************************************************/ + extern "C" HRESULT FileResolvePath( + __in LPCWSTR wzRelativePath, + __out LPWSTR *ppwzFullPath + ) + { + Assert(wzRelativePath && *wzRelativePath); + + HRESULT hr = S_OK; + DWORD cch = 0; + LPWSTR pwzExpandedPath = NULL; + DWORD cchExpandedPath = 0; + + LPWSTR pwzFullPath = NULL; + DWORD cchFullPath = 0; + + LPWSTR wzFileName = NULL; + + // + // First, expand any environment variables. + // + cchExpandedPath = MAX_PATH; + hr = StrAlloc(&pwzExpandedPath, cchExpandedPath); + ExitOnFailure(hr, "Failed to allocate space for expanded path."); + + cch = ::ExpandEnvironmentStringsW(wzRelativePath, pwzExpandedPath, cchExpandedPath); + if (0 == cch) + { + ExitWithLastError1(hr, "Failed to expand environment variables in string: %S", wzRelativePath); + } + else if (cchExpandedPath < cch) + { + cchExpandedPath = cch; + hr = StrAlloc(&pwzExpandedPath, cchExpandedPath); + ExitOnFailure(hr, "Failed to re-allocate more space for expanded path."); + + cch = ::ExpandEnvironmentStringsW(wzRelativePath, pwzExpandedPath, cchExpandedPath); + if (0 == cch) + { + ExitWithLastError1(hr, "Failed to expand environment variables in string: %S", wzRelativePath); + } + else if (cchExpandedPath < cch) + { + hr = HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER); + ExitOnFailure(hr, "Failed to allocate buffer for expanded path."); + } + } + + // + // Second, get the full path. + // + cchFullPath = MAX_PATH; + hr = StrAlloc(&pwzFullPath, cchFullPath); + ExitOnFailure(hr, "Failed to allocate space for full path."); + + cch = ::GetFullPathNameW(pwzExpandedPath, cchFullPath, pwzFullPath, &wzFileName); + if (0 == cch) + { + ExitWithLastError1(hr, "Failed to get full path for string: %S", pwzExpandedPath); + } + else if (cchFullPath < cch) + { + cchFullPath = cch; + hr = StrAlloc(&pwzFullPath, cchFullPath); + ExitOnFailure(hr, "Failed to re-allocate more space for full path."); + + cch = ::GetFullPathNameW(pwzExpandedPath, cchFullPath, pwzFullPath, &wzFileName); + if (0 == cch) + { + ExitWithLastError1(hr, "Failed to get full path for string: %S", pwzExpandedPath); + } + else if (cchFullPath < cch) + { + hr = HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER); + ExitOnFailure(hr, "Failed to allocate buffer for full path."); + } + } + + *ppwzFullPath = pwzFullPath; + pwzFullPath = NULL; + + LExit: + ReleaseStr(pwzFullPath); + ReleaseStr(pwzExpandedPath); + + return hr; + } + + + /******************************************************************* FileVersionFromString *************** *** 170,174 **** ********************************************************************/ HRESULT FileRead( ! __out LPBYTE* ppbDest, __out DWORD* pcbDest, __in LPCWSTR wzSrcPath --- 263,267 ---- ********************************************************************/ HRESULT FileRead( ! __inout LPBYTE* ppbDest, __out DWORD* pcbDest, __in LPCWSTR wzSrcPath *************** *** 185,188 **** --- 278,283 ---- hFile = ::CreateFileW(wzSrcPath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL); + if (INVALID_HANDLE_VALUE == hFile) + ExitOnLastError1(hr, "Failed to open file: %S", wzSrcPath); hr = FileSizeByHandle(hFile, &llSize); Index: aclutil.cpp =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/aclutil.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** aclutil.cpp 18 Jan 2006 10:51:24 -0000 1.7 --- aclutil.cpp 1 Mar 2006 08:50:32 -0000 1.8 *************** *** 334,338 **** cbAcl += sizeof(ACCESS_ALLOWED_ACE) + ::GetLengthSid(rgaaAllow[i].psid) - sizeof(DWORD); ! pAcl = static_cast<ACL*>(MemAlloc(cbAcl, FALSE)); ExitOnNull(pAcl, hr, E_OUTOFMEMORY, "failed to allocate ACL"); --- 334,338 ---- cbAcl += sizeof(ACCESS_ALLOWED_ACE) + ::GetLengthSid(rgaaAllow[i].psid) - sizeof(DWORD); ! pAcl = static_cast<ACL*>(MemAlloc(cbAcl, TRUE)); ExitOnNull(pAcl, hr, E_OUTOFMEMORY, "failed to allocate ACL"); Index: timeutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/timeutil.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** timeutil.h 18 Jan 2006 10:51:24 -0000 1.2 --- timeutil.h 1 Mar 2006 08:50:32 -0000 1.3 *************** *** 23,27 **** #endif ! HRESULT TimeFromString( __in LPCWSTR wzTime, __out FILETIME* pFileTime --- 23,27 ---- #endif ! HRESULT DAPI TimeFromString( __in LPCWSTR wzTime, __out FILETIME* pFileTime Index: inetutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/inetutil.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** inetutil.h 18 Jan 2006 10:51:24 -0000 1.2 --- inetutil.h 1 Mar 2006 08:50:32 -0000 1.3 *************** *** 24,32 **** // functions ! HRESULT InternetGetSizeByHandle( __in HINTERNET hiFile, __out LONGLONG* pllSize ); ! HRESULT InternetGetCreateTimeByHandle( __in HINTERNET hiFile, __out LPFILETIME pft --- 24,32 ---- // functions ! HRESULT DAPI InternetGetSizeByHandle( __in HINTERNET hiFile, __out LONGLONG* pllSize ); ! HRESULT DAPI InternetGetCreateTimeByHandle( __in HINTERNET hiFile, __out LPFILETIME pft Index: dirutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/dirutil.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** dirutil.h 18 Jan 2006 10:51:24 -0000 1.4 --- dirutil.h 1 Mar 2006 08:50:32 -0000 1.5 *************** *** 23,32 **** #endif ! BOOL DirExists( __in LPCWSTR wzPath, __out_opt DWORD *pdwAttributes ); ! HRESULT DirCreateTempPath( __in LPCWSTR wzPrefix, __in LPWSTR wzPath, --- 23,32 ---- #endif ! BOOL DAPI DirExists( __in LPCWSTR wzPath, __out_opt DWORD *pdwAttributes ); ! HRESULT DAPI DirCreateTempPath( __in LPCWSTR wzPrefix, __in LPWSTR wzPath, *************** *** 34,38 **** ); ! HRESULT DirEnsureExists( __in LPCWSTR wzPath, __in_opt LPSECURITY_ATTRIBUTES psa --- 34,38 ---- ); ! HRESULT DAPI DirEnsureExists( __in LPCWSTR wzPath, __in_opt LPSECURITY_ATTRIBUTES psa Index: metautil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/metautil.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** metautil.h 18 Jan 2006 10:51:24 -0000 1.2 --- metautil.h 1 Mar 2006 08:50:32 -0000 1.3 *************** *** 30,34 **** // prototypes ! HRESULT MetaFindWebBase( __in IMSAdminBaseW* piMetabase, __in LPCWSTR wzIP, --- 30,34 ---- // prototypes ! HRESULT DAPI MetaFindWebBase( __in IMSAdminBaseW* piMetabase, __in LPCWSTR wzIP, *************** *** 39,43 **** __in DWORD cchWebBase ); ! HRESULT MetaFindFreeWebBase( __in IMSAdminBaseW* piMetabase, __out_ecount(cchWebBase) LPWSTR wzWebBase, --- 39,43 ---- __in DWORD cchWebBase ); ! HRESULT DAPI MetaFindFreeWebBase( __in IMSAdminBaseW* piMetabase, __out_ecount(cchWebBase) LPWSTR wzWebBase, *************** *** 45,49 **** ); ! HRESULT MetaOpenKey( __in IMSAdminBaseW* piMetabase, __in METADATA_HANDLE mhKey, --- 45,49 ---- ); ! HRESULT DAPI MetaOpenKey( __in IMSAdminBaseW* piMetabase, __in METADATA_HANDLE mhKey, *************** *** 53,57 **** __out METADATA_HANDLE* pmh ); ! HRESULT MetaGetValue( __in IMSAdminBaseW* piMetabase, __in METADATA_HANDLE mhKey, --- 53,57 ---- __out METADATA_HANDLE* pmh ); ! HRESULT DAPI MetaGetValue( __in IMSAdminBaseW* piMetabase, __in METADATA_HANDLE mhKey, *************** *** 59,63 **** __inout METADATA_RECORD* pmr ); ! void MetaFreeValue( __in METADATA_RECORD* pmr ); --- 59,63 ---- __inout METADATA_RECORD* pmr ); ! void DAPI MetaFreeValue( __in METADATA_RECORD* pmr ); Index: memutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/memutil.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** memutil.h 18 Jan 2006 10:51:24 -0000 1.3 --- memutil.h 1 Mar 2006 08:50:32 -0000 1.4 *************** *** 22,33 **** #endif ! HRESULT MemInitialize(); ! void MemUninitialize(); ! LPVOID MemAlloc( __in SIZE_T cbSize, __in BOOL fZero ); ! LPVOID MemReAlloc( __in LPVOID pv, __in SIZE_T cbSize, --- 22,33 ---- #endif ! HRESULT DAPI MemInitialize(); ! void DAPI MemUninitialize(); ! LPVOID DAPI MemAlloc( __in SIZE_T cbSize, __in BOOL fZero ); ! LPVOID DAPI MemReAlloc( __in LPVOID pv, __in SIZE_T cbSize, *************** *** 35,42 **** ); ! HRESULT MemFree( __in LPVOID pv ); ! SIZE_T MemSize( __in LPVOID pv ); --- 35,42 ---- ); ! HRESULT DAPI MemFree( __in LPVOID pv ); ! SIZE_T DAPI MemSize( __in LPVOID pv ); Index: perfutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/perfutil.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** perfutil.h 18 Jan 2006 10:51:24 -0000 1.2 --- perfutil.h 1 Mar 2006 08:50:32 -0000 1.3 *************** *** 26,35 **** // functions ! void PerfInitialize( ); ! void PerfClickTime( __in LARGE_INTEGER* pliElapsed ); ! double PerfConvertToSeconds( __in LARGE_INTEGER* pli ); --- 26,35 ---- // functions ! void DAPI PerfInitialize( ); ! void DAPI PerfClickTime( __in LARGE_INTEGER* pliElapsed ); ! double DAPI PerfConvertToSeconds( __in LARGE_INTEGER* pli ); Index: sqlutil.cpp =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/sqlutil.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** sqlutil.cpp 18 Jan 2006 10:51:24 -0000 1.6 --- sqlutil.cpp 1 Mar 2006 08:50:32 -0000 1.7 *************** *** 540,544 **** __out_opt IRowset** ppirs, __out_opt DBROWCOUNT* pcRows, ! __out BSTR* pbstrErrorDescription ) { --- 540,544 ---- __out_opt IRowset** ppirs, __out_opt DBROWCOUNT* pcRows, ! __inout BSTR* pbstrErrorDescription ) { Index: cabutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/cabutil.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** cabutil.h 18 Jan 2006 10:51:24 -0000 1.2 --- cabutil.h 1 Mar 2006 08:50:32 -0000 1.3 *************** *** 41,51 **** // functions ! HRESULT CabInitialize( __in BOOL fDelayLoad ); ! void CabUninitialize( ); ! HRESULT CabExtract( __in LPCWSTR wzCabinet, __in LPCWSTR wzExtractFile, --- 41,51 ---- // functions ! HRESULT DAPI CabInitialize( __in BOOL fDelayLoad ); ! void DAPI CabUninitialize( ); ! HRESULT DAPI CabExtract( __in LPCWSTR wzCabinet, __in LPCWSTR wzExtractFile, Index: strutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/strutil.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** strutil.h 18 Jan 2006 10:51:24 -0000 1.5 --- strutil.h 1 Mar 2006 08:50:32 -0000 1.6 *************** *** 18,22 **** //------------------------------------------------------------------------------------------------- - #ifdef __cplusplus extern "C" { --- 18,21 ---- *************** *** 28,45 **** #define ReleaseNullBSTR(bstr) if (bstr) { ::SysFreeString(bstr); bstr = NULL; } ! HRESULT StrAlloc( __inout LPWSTR* ppwz, __in DWORD_PTR cch ); ! HRESULT StrAnsiAlloc( __inout LPSTR* ppz, __in DWORD_PTR cch ); ! HRESULT StrAllocString( __inout LPWSTR* ppwz, __in LPCWSTR wzSource, __in DWORD_PTR cchSource ); ! HRESULT StrAnsiAllocString( __inout LPSTR* ppsz, __in LPCWSTR wzSource, --- 27,44 ---- #define ReleaseNullBSTR(bstr) if (bstr) { ::SysFreeString(bstr); bstr = NULL; } ! HRESULT DAPI StrAlloc( __inout LPWSTR* ppwz, __in DWORD_PTR cch ); ! HRESULT DAPI StrAnsiAlloc( __inout LPSTR* ppz, __in DWORD_PTR cch ); ! HRESULT DAPI StrAllocString( __inout LPWSTR* ppwz, __in LPCWSTR wzSource, __in DWORD_PTR cchSource ); ! HRESULT DAPI StrAnsiAllocString( __inout LPSTR* ppsz, __in LPCWSTR wzSource, *************** *** 47,51 **** __in UINT uiCodepage ); ! HRESULT StrAllocStringAnsi( __inout LPWSTR* ppwz, __in LPCSTR szSource, --- 46,50 ---- __in UINT uiCodepage ); ! HRESULT DAPI StrAllocStringAnsi( __inout LPWSTR* ppwz, __in LPCSTR szSource, *************** *** 53,77 **** __in UINT uiCodepage ); ! HRESULT StrAllocConcat( __inout LPWSTR* ppwz, __in LPCWSTR wzSource, __in DWORD_PTR cchSource ); ! HRESULT StrAllocFormatted( __inout LPWSTR* ppwz, __in LPCWSTR wzFormat, ... ); ! HRESULT StrAnsiAllocFormatted( __inout LPSTR* ppsz, __in LPCSTR szFormat, ... ); ! HRESULT StrAllocFormattedArgs( __inout LPWSTR* ppwz, __in LPCWSTR wzFormat, __in va_list args ); ! HRESULT StrAnsiAllocFormattedArgs( __inout LPSTR* ppsz, __in LPCSTR szFormat, --- 52,76 ---- __in UINT uiCodepage ); ! HRESULT DAPI StrAllocConcat( __inout LPWSTR* ppwz, __in LPCWSTR wzSource, __in DWORD_PTR cchSource ); ! HRESULT __cdecl StrAllocFormatted( __inout LPWSTR* ppwz, __in LPCWSTR wzFormat, ... ); ! HRESULT __cdecl StrAnsiAllocFormatted( __inout LPSTR* ppsz, __in LPCSTR szFormat, ... ); ! HRESULT DAPI StrAllocFormattedArgs( __inout LPWSTR* ppwz, __in LPCWSTR wzFormat, __in va_list args ); ! HRESULT DAPI StrAnsiAllocFormattedArgs( __inout LPSTR* ppsz, __in LPCSTR szFormat, *************** *** 79,105 **** ); ! HRESULT StrMaxLength( __in LPVOID p, __out DWORD_PTR* pcch ); ! HRESULT StrSize( __in LPVOID p, __out DWORD_PTR* pcb ); ! HRESULT StrFree( __in LPVOID p ); ! HRESULT StrCurrentTime( __inout LPWSTR* ppwz, __in BOOL fGMT ); ! HRESULT StrCurrentDateTime( __inout LPWSTR* ppwz, __in BOOL fGMT ); ! HRESULT StrHexEncode( __in_ecount(cbSource) const BYTE* pbSource, __in DWORD_PTR cbSource, --- 78,104 ---- ); ! HRESULT DAPI StrMaxLength( __in LPVOID p, __out DWORD_PTR* pcch ); ! HRESULT DAPI StrSize( __in LPVOID p, __out DWORD_PTR* pcb ); ! HRESULT DAPI StrFree( __in LPVOID p ); ! HRESULT DAPI StrCurrentTime( __inout LPWSTR* ppwz, __in BOOL fGMT ); ! HRESULT DAPI StrCurrentDateTime( __inout LPWSTR* ppwz, __in BOOL fGMT ); ! HRESULT DAPI StrHexEncode( __in_ecount(cbSource) const BYTE* pbSource, __in DWORD_PTR cbSource, *************** *** 107,111 **** __in DWORD_PTR cchDest ); ! HRESULT StrHexDecode( __in LPCWSTR wzSource, __out_bcount(cbDest) BYTE* pbDest, --- 106,110 ---- __in DWORD_PTR cchDest ); ! HRESULT DAPI StrHexDecode( __in LPCWSTR wzSource, __out_bcount(cbDest) BYTE* pbDest, *************** *** 113,122 **** ); ! HRESULT StrAllocBase85Encode( __in_bcount(cbSource) const BYTE* pbSource, __in DWORD_PTR cbSource, __inout LPWSTR* pwzDest ); ! HRESULT StrAllocBase85Decode( __in LPCWSTR wzSource, __out BYTE** hbDest, --- 112,121 ---- ); ! HRESULT DAPI StrAllocBase85Encode( __in_bcount(cbSource) const BYTE* pbSource, __in DWORD_PTR cbSource, __inout LPWSTR* pwzDest ); ! HRESULT DAPI StrAllocBase85Decode( __in LPCWSTR wzSource, __out BYTE** hbDest, *************** *** 124,137 **** ); ! HRESULT MultiSzLen( __in LPCWSTR pwzMultiSz, __out DWORD_PTR* pcch ); ! HRESULT MultiSzPrepend( __inout LPWSTR* ppwzMultiSz, __inout_opt DWORD_PTR *pcchMultiSz, __in LPCWSTR pwzInsert ); ! HRESULT MultiSzFindSubstring( __in LPCWSTR pwzMultiSz, __in LPCWSTR pwzSubstring, --- 123,136 ---- ); ! HRESULT DAPI MultiSzLen( __in LPCWSTR pwzMultiSz, __out DWORD_PTR* pcch ); ! HRESULT DAPI MultiSzPrepend( __inout LPWSTR* ppwzMultiSz, __inout_opt DWORD_PTR *pcchMultiSz, __in LPCWSTR pwzInsert ); ! HRESULT DAPI MultiSzFindSubstring( __in LPCWSTR pwzMultiSz, __in LPCWSTR pwzSubstring, *************** *** 139,143 **** __out_opt LPCWSTR* ppwzFoundIn ); ! HRESULT MultiSzFindString( __in LPCWSTR pwzMultiSz, __in LPCWSTR pwzString, --- 138,142 ---- __out_opt LPCWSTR* ppwzFoundIn ); ! HRESULT DAPI MultiSzFindString( __in LPCWSTR pwzMultiSz, __in LPCWSTR pwzString, *************** *** 145,153 **** __out LPCWSTR* ppwzFound ); ! HRESULT MultiSzRemoveString( __inout LPWSTR* ppwzMultiSz, __in DWORD_PTR dwIndex ); ! HRESULT MultiSzInsertString( __inout LPWSTR* ppwzMultiSz, __inout_opt DWORD_PTR *pcchMultiSz, --- 144,152 ---- __out LPCWSTR* ppwzFound ); ! HRESULT DAPI MultiSzRemoveString( __inout LPWSTR* ppwzMultiSz, __in DWORD_PTR dwIndex ); ! HRESULT DAPI MultiSzInsertString( __inout LPWSTR* ppwzMultiSz, __inout_opt DWORD_PTR *pcchMultiSz, *************** *** 155,159 **** __in LPCWSTR pwzInsert ); ! HRESULT MultiSzReplaceString( __inout LPWSTR* ppwzMultiSz, __in DWORD_PTR dwIndex, --- 154,158 ---- __in LPCWSTR pwzInsert ); ! HRESULT DAPI MultiSzReplaceString( __inout LPWSTR* ppwzMultiSz, __in DWORD_PTR dwIndex, Index: dutil.h =================================================================== RCS file: /cvsroot/wix/wix/src/dutil/dutil.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** dutil.h 18 Jan 2006 10:51:24 -0000 1.8 --- dutil.h 1 Mar 2006 08:50:32 -0000 1.9 *************** *** 18,21 **** --- 18,23 ---- //------------------------------------------------------------------------------------------------- + #define DAPI __stdcall + // enums enum REPORT_LEVEL { *************** *** 30,44 **** #ifdef DEBUG ! typedef BOOL (*DUTIL_ASSERTDISPLAYFUNCTION)(LPCSTR sz); ! extern "C" void Dutil_SetAssertModule(__in HMODULE hAssertModule); ! extern "C" void Dutil_SetAssertDisplayFunction(__in DUTIL_ASSERTDISPLAYFUNCTION pfn); ! extern "C" void Dutil_Assert(const CHAR* szFile, int iLine); ! extern "C" void Dutil_AssertSz(const CHAR* szFile, int iLine, const CHAR *szMsg); ! extern "C" void Dutil_TraceSetLevel(__in REPORT_LEVEL ll, __in BOOL fTraceFilenames); ! extern "C" REPORT_LEVEL Dutil_TraceGetLevel(); ! extern "C" void Dutil_Trace(__in LPCSTR szFile, __in int iLine, __in REPORT_LEVEL rl, __in LPCSTR szMessage, ...); ! extern "C" void Dutil_TraceError(__in LPCSTR szFile, __in int iLine, __in REPORT_LEVEL rl, __in HRESULT hr, __in LPCSTR szMessage, ...); #endif --- 32,46 ---- #ifdef DEBUG ! typedef BOOL (DAPI *DUTIL_ASSERTDISPLAYFUNCTION)(LPCSTR sz); ! extern "C" void DAPI Dutil_SetAssertModule(__in HMODULE hAssertModule); ! extern "C" void DAPI Dutil_SetAssertDisplayFunction(__in DUTIL_ASSERTDISPLAYFUNCTION pfn); ! extern "C" void DAPI Dutil_Assert(const CHAR* szFile, int iLine); ! extern "C" void DAPI Dutil_AssertSz(const CHAR* szFile, int iLine, const CHAR *szMsg); ! extern "C" void DAPI Dutil_TraceSetLevel(__in REPORT_LEVEL ll, __in BOOL fTraceFilenames); ! extern "C" REPORT_LEVEL DAPI Dutil_TraceGetLevel(); ! extern "C" void __cdecl Dutil_Trace(__in LPCSTR szFile, __in int iLine, __in REPORT_LEVEL rl, __in LPCSTR szMessage, ...); ! extern "C" void __cdecl Dutil_TraceError(__in LPCSTR szFile, __in int iLine, __in REPORT_LEVEL rl, __in HRESULT hr, __in LPCSTR szMessage, ...); #endif |