

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 8.00.0603 */
/* at Fri Aug 07 13:07:31 2020
 */
/* Compiler settings for ..\src\BxPackerApi\BxPackerApi.idl:
    Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603 
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING(  ) */

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__


#ifndef __BxPackerApi_Interfaces_h__
#define __BxPackerApi_Interfaces_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IBxProject_FWD_DEFINED__
#define __IBxProject_FWD_DEFINED__
typedef interface IBxProject IBxProject;

#endif 	/* __IBxProject_FWD_DEFINED__ */


#ifndef __IBxLog_FWD_DEFINED__
#define __IBxLog_FWD_DEFINED__
typedef interface IBxLog IBxLog;

#endif 	/* __IBxLog_FWD_DEFINED__ */


#ifndef __IBxProgressEvents_FWD_DEFINED__
#define __IBxProgressEvents_FWD_DEFINED__
typedef interface IBxProgressEvents IBxProgressEvents;

#endif 	/* __IBxProgressEvents_FWD_DEFINED__ */


#ifndef __IBxProgressControl_FWD_DEFINED__
#define __IBxProgressControl_FWD_DEFINED__
typedef interface IBxProgressControl IBxProgressControl;

#endif 	/* __IBxProgressControl_FWD_DEFINED__ */


#ifndef __IBxFile_FWD_DEFINED__
#define __IBxFile_FWD_DEFINED__
typedef interface IBxFile IBxFile;

#endif 	/* __IBxFile_FWD_DEFINED__ */


#ifndef __IBxFileSystem_FWD_DEFINED__
#define __IBxFileSystem_FWD_DEFINED__
typedef interface IBxFileSystem IBxFileSystem;

#endif 	/* __IBxFileSystem_FWD_DEFINED__ */


#ifndef __IBxEnumFile_FWD_DEFINED__
#define __IBxEnumFile_FWD_DEFINED__
typedef interface IBxEnumFile IBxEnumFile;

#endif 	/* __IBxEnumFile_FWD_DEFINED__ */


#ifndef __IBxFileEvents_FWD_DEFINED__
#define __IBxFileEvents_FWD_DEFINED__
typedef interface IBxFileEvents IBxFileEvents;

#endif 	/* __IBxFileEvents_FWD_DEFINED__ */


#ifndef __IBxRegKey_FWD_DEFINED__
#define __IBxRegKey_FWD_DEFINED__
typedef interface IBxRegKey IBxRegKey;

#endif 	/* __IBxRegKey_FWD_DEFINED__ */


#ifndef __IBxRegistry_FWD_DEFINED__
#define __IBxRegistry_FWD_DEFINED__
typedef interface IBxRegistry IBxRegistry;

#endif 	/* __IBxRegistry_FWD_DEFINED__ */


#ifndef __IBxRegValue_FWD_DEFINED__
#define __IBxRegValue_FWD_DEFINED__
typedef interface IBxRegValue IBxRegValue;

#endif 	/* __IBxRegValue_FWD_DEFINED__ */


#ifndef __IBxRegKeyEvents_FWD_DEFINED__
#define __IBxRegKeyEvents_FWD_DEFINED__
typedef interface IBxRegKeyEvents IBxRegKeyEvents;

#endif 	/* __IBxRegKeyEvents_FWD_DEFINED__ */


#ifndef __IBxRegValueEvents_FWD_DEFINED__
#define __IBxRegValueEvents_FWD_DEFINED__
typedef interface IBxRegValueEvents IBxRegValueEvents;

#endif 	/* __IBxRegValueEvents_FWD_DEFINED__ */


#ifndef __IBxEnumRegKey_FWD_DEFINED__
#define __IBxEnumRegKey_FWD_DEFINED__
typedef interface IBxEnumRegKey IBxEnumRegKey;

#endif 	/* __IBxEnumRegKey_FWD_DEFINED__ */


#ifndef __IBxEnumRegValue_FWD_DEFINED__
#define __IBxEnumRegValue_FWD_DEFINED__
typedef interface IBxEnumRegValue IBxEnumRegValue;

#endif 	/* __IBxEnumRegValue_FWD_DEFINED__ */


#ifndef __IBxProjectEvents_FWD_DEFINED__
#define __IBxProjectEvents_FWD_DEFINED__
typedef interface IBxProjectEvents IBxProjectEvents;

#endif 	/* __IBxProjectEvents_FWD_DEFINED__ */


#ifndef __IBxSnapshotManager_FWD_DEFINED__
#define __IBxSnapshotManager_FWD_DEFINED__
typedef interface IBxSnapshotManager IBxSnapshotManager;

#endif 	/* __IBxSnapshotManager_FWD_DEFINED__ */


#ifndef __IBxPredefinedDirectoriesInfoProvider_FWD_DEFINED__
#define __IBxPredefinedDirectoriesInfoProvider_FWD_DEFINED__
typedef interface IBxPredefinedDirectoriesInfoProvider IBxPredefinedDirectoriesInfoProvider;

#endif 	/* __IBxPredefinedDirectoriesInfoProvider_FWD_DEFINED__ */


#ifndef __IBxImportRegFileService_FWD_DEFINED__
#define __IBxImportRegFileService_FWD_DEFINED__
typedef interface IBxImportRegFileService IBxImportRegFileService;

#endif 	/* __IBxImportRegFileService_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"

#ifdef __cplusplus
extern "C"{
#endif 



#ifndef __BxPackerApi_Interfaces_LIBRARY_DEFINED__
#define __BxPackerApi_Interfaces_LIBRARY_DEFINED__

/* library BxPackerApi_Interfaces */
/* [helpstring][version][uuid] */ 




















typedef 
enum BxEnumProjectProp
    {
        BxEnumProjectProp_InputPath	= 0,
        BxEnumProjectProp_OutputPath	= ( BxEnumProjectProp_InputPath + 1 ) ,
        BxEnumProjectProp_ShareVirtualEnvironmentWithChildProcesses	= ( BxEnumProjectProp_OutputPath + 1 ) ,
        BxEnumProjectProp_EnableDebugLog	= ( BxEnumProjectProp_ShareVirtualEnvironmentWithChildProcesses + 1 ) ,
        BxEnumProjectProp_EnableVirtualRegistry	= ( BxEnumProjectProp_EnableDebugLog + 1 ) ,
        BxEnumProjectProp_HideVirtualFileFromFileDialog	= ( BxEnumProjectProp_EnableVirtualRegistry + 1 ) ,
        BxEnumProjectProp_AllChangesAreVirtual	= ( BxEnumProjectProp_HideVirtualFileFromFileDialog + 1 ) ,
        BxEnumProjectProp_SetIcon	= ( BxEnumProjectProp_AllChangesAreVirtual + 1 ) ,
        BxEnumProjectProp_IconPath	= ( BxEnumProjectProp_SetIcon + 1 ) ,
        BxEnumProjectProp_EnableSplashScreen	= ( BxEnumProjectProp_IconPath + 1 ) ,
        BxEnumProjectProp_SplashScreenPath	= ( BxEnumProjectProp_EnableSplashScreen + 1 ) ,
        BxEnumProjectProp_OverrideVersionInformation	= ( BxEnumProjectProp_SplashScreenPath + 1 ) ,
        BxEnumProjectProp_FileVersion0	= ( BxEnumProjectProp_OverrideVersionInformation + 1 ) ,
        BxEnumProjectProp_FileVersion1	= ( BxEnumProjectProp_FileVersion0 + 1 ) ,
        BxEnumProjectProp_FileVersion2	= ( BxEnumProjectProp_FileVersion1 + 1 ) ,
        BxEnumProjectProp_FileVersion3	= ( BxEnumProjectProp_FileVersion2 + 1 ) ,
        BxEnumProjectProp_OverrideCommandLine	= ( BxEnumProjectProp_FileVersion3 + 1 ) ,
        BxEnumProjectProp_CommandLine	= ( BxEnumProjectProp_OverrideCommandLine + 1 ) ,
        BxEnumProjectProp_CompressFiles	= ( BxEnumProjectProp_CommandLine + 1 ) ,
        BxEnumProjectProp_CacheUncompressedFiles	= ( BxEnumProjectProp_CompressFiles + 1 ) ,
        BxEnumProjectProp_EnableSplashScreenDisplayTime	= ( BxEnumProjectProp_CacheUncompressedFiles + 1 ) ,
        BxEnumProjectProp_SplashScreenDisplayTime	= ( BxEnumProjectProp_EnableSplashScreenDisplayTime + 1 ) ,
        BxEnumProjectProp_HideSplashScreenOnceWindowShown	= ( BxEnumProjectProp_SplashScreenDisplayTime + 1 ) ,
        BxEnumProjectProp_RunAsVirtualExe	= ( BxEnumProjectProp_HideSplashScreenOnceWindowShown + 1 ) ,
        BxEnumProjectProp_Count	= ( BxEnumProjectProp_RunAsVirtualExe + 1 ) 
    } 	BxEnumProjectProp;

typedef 
enum BxEnumFileProp
    {
        BxEnumFileProp_Name	= 0,
        BxEnumFileProp_IsVirtual	= ( BxEnumFileProp_Name + 1 ) ,
        BxEnumFileProp_IsVirtuallyDeleted	= ( BxEnumFileProp_IsVirtual + 1 ) ,
        BxEnumFileProp_IsPlugin	= ( BxEnumFileProp_IsVirtuallyDeleted + 1 ) ,
        BxEnumFileProp_RegisterAsCOMLibrary	= ( BxEnumFileProp_IsPlugin + 1 ) ,
        BxEnumFileProp_RegisterAsTypeLib	= ( BxEnumFileProp_RegisterAsCOMLibrary + 1 ) ,
        BxEnumFileProp_RegisterAsCOMServer	= ( BxEnumFileProp_RegisterAsTypeLib + 1 ) ,
        BxEnumFileProp_RegisterAsCOMServerCmdLineArgs	= ( BxEnumFileProp_RegisterAsCOMServer + 1 ) ,
        BxEnumFileProp_SourcePath	= ( BxEnumFileProp_RegisterAsCOMServerCmdLineArgs + 1 ) ,
        BxEnumFileProp_Directory	= ( BxEnumFileProp_SourcePath + 1 ) ,
        BxEnumFileProp_Count	= ( BxEnumFileProp_Directory + 1 ) 
    } 	BxEnumFileProp;

typedef 
enum BxEnumRegKeyProp
    {
        BxEnumRegKeyProp_Name	= 0,
        BxEnumRegKeyProp_IsVirtual	= ( BxEnumRegKeyProp_Name + 1 ) ,
        BxEnumRegKeyProp_IsVirtuallyDeleted	= ( BxEnumRegKeyProp_IsVirtual + 1 ) ,
        BxEnumRegKeyProp_Count	= ( BxEnumRegKeyProp_IsVirtuallyDeleted + 1 ) 
    } 	BxEnumRegKeyProp;

typedef 
enum BxEnumRegValueProp
    {
        BxEnumRegValueProp_Name	= 0,
        BxEnumRegValueProp_Data	= ( BxEnumRegValueProp_Name + 1 ) ,
        BxEnumRegValueProp_IsVirtual	= ( BxEnumRegValueProp_Data + 1 ) ,
        BxEnumRegValueProp_IsVirtuallyDeleted	= ( BxEnumRegValueProp_IsVirtual + 1 ) ,
        BxEnumRegValueProp_Type	= ( BxEnumRegValueProp_IsVirtuallyDeleted + 1 ) ,
        BxEnumRegValueProp_UseVariablesInData	= ( BxEnumRegValueProp_Type + 1 ) ,
        BxEnumRegValueProp_Count	= ( BxEnumRegValueProp_UseVariablesInData + 1 ) 
    } 	BxEnumRegValueProp;

typedef 
enum BxEnumRegValueType
    {
        BxEnumRegValueType_REG_SZ	= 1,
        BxEnumRegValueType_REG_EXPAND_SZ	= 2,
        BxEnumRegValueType_REG_BINARY	= 3,
        BxEnumRegValueType_REG_DWORD	= 4,
        BxEnumRegValueType_REG_MULTI_SZ	= 7,
        BxEnumRegValueType_REG_QWORD	= 11,
        BxEnumRegValueType_Last	= ( BxEnumRegValueType_REG_QWORD + 1 ) 
    } 	BxEnumRegValueType;

typedef 
enum BxMakeSnapshotFlags
    {
        BxMakeSnapshotFlags_All	= 0,
        BxMakeSnapshotFlags_EnumFiles	= 0x1,
        BxMakeSnapshotFlags_EnumRegistry	= 0x2
    } 	BxMakeSnapshotFlags;

typedef 
enum BxEnumLogLevel
    {
        BxEnumLogLevel_Info	= 0,
        BxEnumLogLevel_Warning	= ( BxEnumLogLevel_Info + 1 ) ,
        BxEnumLogLevel_Error	= ( BxEnumLogLevel_Warning + 1 ) 
    } 	BxEnumLogLevel;

typedef 
enum BxEnumSortOrder
    {
        BxEnumSortOrder_Asc	= 0,
        BxEnumSortOrder_Desc	= ( BxEnumSortOrder_Asc + 1 ) 
    } 	BxEnumSortOrder;

typedef 
enum BxEnumFileFilter
    {
        BxEnumFileFilter_Directories	= 0
    } 	BxEnumFileFilter;

typedef 
enum BxEnumRegistryView
    {
        BxEnumRegistryView_64Bit	= 0,
        BxEnumRegistryView_32Bit	= ( BxEnumRegistryView_64Bit + 1 ) 
    } 	BxEnumRegistryView;

#pragma once
typedef 
enum BxEnumPredefinedDirectory
    {
        BxEnumPredefinedDirectory_None	= 0,
        BxEnumPredefinedDirectory_First	= BxEnumPredefinedDirectory_None,
        BxEnumPredefinedDirectory_Root	= ( BxEnumPredefinedDirectory_First + 1 ) ,
        BxEnumPredefinedDirectory_ExeDir	= ( BxEnumPredefinedDirectory_Root + 1 ) ,
        BxEnumPredefinedDirectory_SystemDrive	= ( BxEnumPredefinedDirectory_ExeDir + 1 ) ,
        BxEnumPredefinedDirectory_Windows	= ( BxEnumPredefinedDirectory_SystemDrive + 1 ) ,
        BxEnumPredefinedDirectory_System32_32Bit	= ( BxEnumPredefinedDirectory_Windows + 1 ) ,
        BxEnumPredefinedDirectory_System32_64Bit	= ( BxEnumPredefinedDirectory_System32_32Bit + 1 ) ,
        BxEnumPredefinedDirectory_ProgramFiles_32Bit	= ( BxEnumPredefinedDirectory_System32_64Bit + 1 ) ,
        BxEnumPredefinedDirectory_ProgramFiles_32Bit_Common	= ( BxEnumPredefinedDirectory_ProgramFiles_32Bit + 1 ) ,
        BxEnumPredefinedDirectory_ProgramFiles_64Bit	= ( BxEnumPredefinedDirectory_ProgramFiles_32Bit_Common + 1 ) ,
        BxEnumPredefinedDirectory_ProgramFiles_64Bit_Common	= ( BxEnumPredefinedDirectory_ProgramFiles_64Bit + 1 ) ,
        BxEnumPredefinedDirectory_UserProfile	= ( BxEnumPredefinedDirectory_ProgramFiles_64Bit_Common + 1 ) ,
        BxEnumPredefinedDirectory_UserProfile_AppData	= ( BxEnumPredefinedDirectory_UserProfile + 1 ) ,
        BxEnumPredefinedDirectory_UserProfile_Desktop	= ( BxEnumPredefinedDirectory_UserProfile_AppData + 1 ) ,
        BxEnumPredefinedDirectory_UserProfile_Documents	= ( BxEnumPredefinedDirectory_UserProfile_Desktop + 1 ) ,
        BxEnumPredefinedDirectory_UserProfile_Music	= ( BxEnumPredefinedDirectory_UserProfile_Documents + 1 ) ,
        BxEnumPredefinedDirectory_UserProfile_Pictures	= ( BxEnumPredefinedDirectory_UserProfile_Music + 1 ) ,
        BxEnumPredefinedDirectory_UserProfile_Video	= ( BxEnumPredefinedDirectory_UserProfile_Pictures + 1 ) ,
        BxEnumPredefinedDirectory_UserProfile_Favorites	= ( BxEnumPredefinedDirectory_UserProfile_Video + 1 ) ,
        BxEnumPredefinedDirectory_UserProfile_Templates	= ( BxEnumPredefinedDirectory_UserProfile_Favorites + 1 ) ,
        BxEnumPredefinedDirectory_UserProfile_Cookies	= ( BxEnumPredefinedDirectory_UserProfile_Templates + 1 ) ,
        BxEnumPredefinedDirectory_UserProfile_LocalAppData	= ( BxEnumPredefinedDirectory_UserProfile_Cookies + 1 ) ,
        BxEnumPredefinedDirectory_UserProfile_StartMenu	= ( BxEnumPredefinedDirectory_UserProfile_LocalAppData + 1 ) ,
        BxEnumPredefinedDirectory_UserProfile_StartMenu_Programs	= ( BxEnumPredefinedDirectory_UserProfile_StartMenu + 1 ) ,
        BxEnumPredefinedDirectory_UserProfile_StartMenu_Programs_Startup	= ( BxEnumPredefinedDirectory_UserProfile_StartMenu_Programs + 1 ) ,
        BxEnumPredefinedDirectory_AllUsers	= ( BxEnumPredefinedDirectory_UserProfile_StartMenu_Programs_Startup + 1 ) ,
        BxEnumPredefinedDirectory_AllUsers_AppData	= ( BxEnumPredefinedDirectory_AllUsers + 1 ) ,
        BxEnumPredefinedDirectory_AllUsers_Desktop	= ( BxEnumPredefinedDirectory_AllUsers_AppData + 1 ) ,
        BxEnumPredefinedDirectory_AllUsers_Documents	= ( BxEnumPredefinedDirectory_AllUsers_Desktop + 1 ) ,
        BxEnumPredefinedDirectory_AllUsers_Music	= ( BxEnumPredefinedDirectory_AllUsers_Documents + 1 ) ,
        BxEnumPredefinedDirectory_AllUsers_Pictures	= ( BxEnumPredefinedDirectory_AllUsers_Music + 1 ) ,
        BxEnumPredefinedDirectory_AllUsers_Video	= ( BxEnumPredefinedDirectory_AllUsers_Pictures + 1 ) ,
        BxEnumPredefinedDirectory_AllUsers_Favorites	= ( BxEnumPredefinedDirectory_AllUsers_Video + 1 ) ,
        BxEnumPredefinedDirectory_AllUsers_Templates	= ( BxEnumPredefinedDirectory_AllUsers_Favorites + 1 ) ,
        BxEnumPredefinedDirectory_AllUsers_StartMenu	= ( BxEnumPredefinedDirectory_AllUsers_Templates + 1 ) ,
        BxEnumPredefinedDirectory_AllUsers_StartMenu_Programs	= ( BxEnumPredefinedDirectory_AllUsers_StartMenu + 1 ) ,
        BxEnumPredefinedDirectory_AllUsers_StartMenu_Programs_Startup	= ( BxEnumPredefinedDirectory_AllUsers_StartMenu_Programs + 1 ) ,
        BxEnumPredefinedDirectory_Count	= ( BxEnumPredefinedDirectory_AllUsers_StartMenu_Programs_Startup + 1 ) 
    } 	BxEnumPredefinedDirectory;

#pragma once
typedef 
enum BxEnumFileType
    {
        BxEnumFileType_Unknown	= 0,
        BxEnumFileType_DotNetExe	= ( BxEnumFileType_Unknown + 1 ) ,
        BxEnumFileType_Xojo	= ( BxEnumFileType_DotNetExe + 1 ) 
    } 	BxEnumFileType;

#pragma once
typedef 
enum BxEnumDotNetFileTargetPlatform
    {
        BxEnumDotNetFileTargetPlatform_Unknown	= 0,
        BxEnumDotNetFileTargetPlatform_AnyCpu	= ( BxEnumDotNetFileTargetPlatform_Unknown + 1 ) ,
        BxEnumDotNetFileTargetPlatform_32Bit	= ( BxEnumDotNetFileTargetPlatform_AnyCpu + 1 ) ,
        BxEnumDotNetFileTargetPlatform_64Bit	= ( BxEnumDotNetFileTargetPlatform_32Bit + 1 ) 
    } 	BxEnumDotNetFileTargetPlatform;


EXTERN_C const IID LIBID_BxPackerApi_Interfaces;

#ifndef __IBxProject_INTERFACE_DEFINED__
#define __IBxProject_INTERFACE_DEFINED__

/* interface IBxProject */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxProject;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("246B8B62-16C9-4b11-9F06-7CEF665D2FA0")
    IBxProject : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE put_Log( 
            /* [in] */ IBxLog *pLog) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_InputPath( 
            /* [in] */ BSTR strPath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_InputPath( 
            /* [retval][out] */ BSTR *pstrPath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_OutputPath( 
            /* [in] */ BSTR strPath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_OutputPath( 
            /* [retval][out] */ BSTR *pstrPath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_ShareVirtualEnvironmentWithChildProcesses( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_ShareVirtualEnvironmentWithChildProcesses( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_EnableDebugLog( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_EnableDebugLog( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_EnableVirtualRegistry( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_EnableVirtualRegistry( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_HideVirtualFileFromFileDialog( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_HideVirtualFileFromFileDialog( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_AllChangesAreVirtual( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_AllChangesAreVirtual( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_SetIcon( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_SetIcon( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_IconPath( 
            /* [in] */ BSTR Value) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_IconPath( 
            /* [retval][out] */ BSTR *pValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_EnableSplashScreen( 
            /* [in] */ VARIANT_BOOL bEnable) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_EnableSplashScreen( 
            /* [retval][out] */ VARIANT_BOOL *pbEnabled) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_SplashScreenPath( 
            /* [in] */ BSTR bstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_SplashScreenPath( 
            /* [retval][out] */ BSTR *pbstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_OverrideVersionInformation( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_OverrideVersionInformation( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_VersionInformationParameter( 
            /* [in] */ BSTR bstrName,
            /* [in] */ BSTR bstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_VersionInformationParameter( 
            /* [in] */ BSTR bstrName,
            /* [retval][out] */ BSTR *pbstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_FileVersion( 
            /* [in] */ WORD v3,
            /* [in] */ WORD v2,
            /* [in] */ WORD v1,
            /* [in] */ WORD v0) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_FileVersion( 
            /* [out] */ WORD *pv3,
            /* [out] */ WORD *pv2,
            /* [out] */ WORD *pv1,
            /* [out] */ WORD *pv0) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_OverrideCommandLine( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_OverrideCommandLine( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_CommandLine( 
            /* [in] */ BSTR bstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_CommandLine( 
            /* [retval][out] */ BSTR *pbstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_CompressFiles( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_CompressFiles( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_CacheUncompressedFiles( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_CacheUncompressedFiles( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_EnableSplashScreenDisplayTime( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_EnableSplashScreenDisplayTime( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_SplashScreenDisplayTime( 
            /* [in] */ DWORD nValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_SplashScreenDisplayTime( 
            /* [retval][out] */ DWORD *pnValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_HideSplashScreenOnceWindowShown( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_HideSplashScreenOnceWindowShown( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_RunAsVirtualExe( 
            /* [in] */ VARIANT_BOOL bValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_RunAsVirtualExe( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddListener( 
            /* [in] */ IBxProjectEvents *pListener,
            /* [retval][out] */ DWORD *pdwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveListener( 
            /* [in] */ DWORD dwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LoadFromXmlFile( 
            /* [in] */ BSTR strPath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LoadFromXmlFileAsync( 
            /* [in] */ BSTR strPath,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveToXmlFile( 
            /* [in] */ BSTR strPath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveToXmlFileAsync( 
            /* [in] */ BSTR strPath,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LoadFromXml( 
            /* [in] */ BSTR strXml) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LoadFromXmlAsync( 
            /* [in] */ BSTR strXml,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveToXml( 
            /* [in] */ BSTR *pbstrXml) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveToXmlAsync( 
            /* [in] */ BSTR *pbstrXml,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LoadFromFile( 
            /* [in] */ BSTR strPath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LoadFromFileAsync( 
            /* [in] */ BSTR strPath,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveToFile( 
            /* [in] */ BSTR strPath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveToFileAsync( 
            /* [in] */ BSTR strPath,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LoadFromXmlStream( 
            /* [in] */ IStream *pStream) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LoadFromXmlStreamAsync( 
            /* [in] */ IStream *pStream,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveToXmlStream( 
            /* [in] */ IStream *pStream) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveToXmlStreamAsync( 
            /* [in] */ IStream *pStream,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_FileSystem( 
            /* [retval][out] */ IBxFileSystem **ppFileSystem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_Registry( 
            /* [retval][out] */ IBxRegistry **ppRegistry) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_VariableNames( 
            /* [retval][out] */ SAFEARRAY * *ppNames) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_VariableValue( 
            /* [in] */ BSTR bstrName,
            /* [retval][out] */ BSTR *pbstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ExpandString( 
            /* [in] */ BSTR strText,
            /* [retval][out] */ BSTR *pbstrExpandedText) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EscapeString( 
            /* [in] */ BSTR strText,
            /* [retval][out] */ BSTR *pbstrEscapedText) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE BuildAsync( 
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Build( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_IsModified( 
            /* [retval][out] */ VARIANT_BOOL *pbModified) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RevertChanges( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_DbVersion( 
            /* [retval][out] */ int *pnDbVersion) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RegisterActiveX( 
            /* [in] */ IBxFile *pActiveXFile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RegisterActiveXAsync( 
            /* [in] */ IBxFile *pActiveXFile,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ImportRegAsmRegistryChanges( 
            /* [in] */ IBxFile *pFile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ImportRegAsmRegistryChangesAsync( 
            /* [in] */ IBxFile *pFile,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxProjectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxProject * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxProject * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxProject * This);
        
        HRESULT ( STDMETHODCALLTYPE *put_Log )( 
            IBxProject * This,
            /* [in] */ IBxLog *pLog);
        
        HRESULT ( STDMETHODCALLTYPE *put_InputPath )( 
            IBxProject * This,
            /* [in] */ BSTR strPath);
        
        HRESULT ( STDMETHODCALLTYPE *get_InputPath )( 
            IBxProject * This,
            /* [retval][out] */ BSTR *pstrPath);
        
        HRESULT ( STDMETHODCALLTYPE *put_OutputPath )( 
            IBxProject * This,
            /* [in] */ BSTR strPath);
        
        HRESULT ( STDMETHODCALLTYPE *get_OutputPath )( 
            IBxProject * This,
            /* [retval][out] */ BSTR *pstrPath);
        
        HRESULT ( STDMETHODCALLTYPE *put_ShareVirtualEnvironmentWithChildProcesses )( 
            IBxProject * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_ShareVirtualEnvironmentWithChildProcesses )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_EnableDebugLog )( 
            IBxProject * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_EnableDebugLog )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_EnableVirtualRegistry )( 
            IBxProject * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_EnableVirtualRegistry )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_HideVirtualFileFromFileDialog )( 
            IBxProject * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_HideVirtualFileFromFileDialog )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_AllChangesAreVirtual )( 
            IBxProject * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_AllChangesAreVirtual )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_SetIcon )( 
            IBxProject * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_SetIcon )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_IconPath )( 
            IBxProject * This,
            /* [in] */ BSTR Value);
        
        HRESULT ( STDMETHODCALLTYPE *get_IconPath )( 
            IBxProject * This,
            /* [retval][out] */ BSTR *pValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_EnableSplashScreen )( 
            IBxProject * This,
            /* [in] */ VARIANT_BOOL bEnable);
        
        HRESULT ( STDMETHODCALLTYPE *get_EnableSplashScreen )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbEnabled);
        
        HRESULT ( STDMETHODCALLTYPE *put_SplashScreenPath )( 
            IBxProject * This,
            /* [in] */ BSTR bstrValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_SplashScreenPath )( 
            IBxProject * This,
            /* [retval][out] */ BSTR *pbstrValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_OverrideVersionInformation )( 
            IBxProject * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_OverrideVersionInformation )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_VersionInformationParameter )( 
            IBxProject * This,
            /* [in] */ BSTR bstrName,
            /* [in] */ BSTR bstrValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_VersionInformationParameter )( 
            IBxProject * This,
            /* [in] */ BSTR bstrName,
            /* [retval][out] */ BSTR *pbstrValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_FileVersion )( 
            IBxProject * This,
            /* [in] */ WORD v3,
            /* [in] */ WORD v2,
            /* [in] */ WORD v1,
            /* [in] */ WORD v0);
        
        HRESULT ( STDMETHODCALLTYPE *get_FileVersion )( 
            IBxProject * This,
            /* [out] */ WORD *pv3,
            /* [out] */ WORD *pv2,
            /* [out] */ WORD *pv1,
            /* [out] */ WORD *pv0);
        
        HRESULT ( STDMETHODCALLTYPE *put_OverrideCommandLine )( 
            IBxProject * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_OverrideCommandLine )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_CommandLine )( 
            IBxProject * This,
            /* [in] */ BSTR bstrValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_CommandLine )( 
            IBxProject * This,
            /* [retval][out] */ BSTR *pbstrValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_CompressFiles )( 
            IBxProject * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_CompressFiles )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_CacheUncompressedFiles )( 
            IBxProject * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_CacheUncompressedFiles )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_EnableSplashScreenDisplayTime )( 
            IBxProject * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_EnableSplashScreenDisplayTime )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_SplashScreenDisplayTime )( 
            IBxProject * This,
            /* [in] */ DWORD nValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_SplashScreenDisplayTime )( 
            IBxProject * This,
            /* [retval][out] */ DWORD *pnValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_HideSplashScreenOnceWindowShown )( 
            IBxProject * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_HideSplashScreenOnceWindowShown )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_RunAsVirtualExe )( 
            IBxProject * This,
            /* [in] */ VARIANT_BOOL bValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_RunAsVirtualExe )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *AddListener )( 
            IBxProject * This,
            /* [in] */ IBxProjectEvents *pListener,
            /* [retval][out] */ DWORD *pdwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveListener )( 
            IBxProject * This,
            /* [in] */ DWORD dwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *LoadFromXmlFile )( 
            IBxProject * This,
            /* [in] */ BSTR strPath);
        
        HRESULT ( STDMETHODCALLTYPE *LoadFromXmlFileAsync )( 
            IBxProject * This,
            /* [in] */ BSTR strPath,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        HRESULT ( STDMETHODCALLTYPE *SaveToXmlFile )( 
            IBxProject * This,
            /* [in] */ BSTR strPath);
        
        HRESULT ( STDMETHODCALLTYPE *SaveToXmlFileAsync )( 
            IBxProject * This,
            /* [in] */ BSTR strPath,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        HRESULT ( STDMETHODCALLTYPE *LoadFromXml )( 
            IBxProject * This,
            /* [in] */ BSTR strXml);
        
        HRESULT ( STDMETHODCALLTYPE *LoadFromXmlAsync )( 
            IBxProject * This,
            /* [in] */ BSTR strXml,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        HRESULT ( STDMETHODCALLTYPE *SaveToXml )( 
            IBxProject * This,
            /* [in] */ BSTR *pbstrXml);
        
        HRESULT ( STDMETHODCALLTYPE *SaveToXmlAsync )( 
            IBxProject * This,
            /* [in] */ BSTR *pbstrXml,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        HRESULT ( STDMETHODCALLTYPE *LoadFromFile )( 
            IBxProject * This,
            /* [in] */ BSTR strPath);
        
        HRESULT ( STDMETHODCALLTYPE *LoadFromFileAsync )( 
            IBxProject * This,
            /* [in] */ BSTR strPath,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        HRESULT ( STDMETHODCALLTYPE *SaveToFile )( 
            IBxProject * This,
            /* [in] */ BSTR strPath);
        
        HRESULT ( STDMETHODCALLTYPE *SaveToFileAsync )( 
            IBxProject * This,
            /* [in] */ BSTR strPath,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        HRESULT ( STDMETHODCALLTYPE *LoadFromXmlStream )( 
            IBxProject * This,
            /* [in] */ IStream *pStream);
        
        HRESULT ( STDMETHODCALLTYPE *LoadFromXmlStreamAsync )( 
            IBxProject * This,
            /* [in] */ IStream *pStream,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        HRESULT ( STDMETHODCALLTYPE *SaveToXmlStream )( 
            IBxProject * This,
            /* [in] */ IStream *pStream);
        
        HRESULT ( STDMETHODCALLTYPE *SaveToXmlStreamAsync )( 
            IBxProject * This,
            /* [in] */ IStream *pStream,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        HRESULT ( STDMETHODCALLTYPE *get_FileSystem )( 
            IBxProject * This,
            /* [retval][out] */ IBxFileSystem **ppFileSystem);
        
        HRESULT ( STDMETHODCALLTYPE *get_Registry )( 
            IBxProject * This,
            /* [retval][out] */ IBxRegistry **ppRegistry);
        
        HRESULT ( STDMETHODCALLTYPE *get_VariableNames )( 
            IBxProject * This,
            /* [retval][out] */ SAFEARRAY * *ppNames);
        
        HRESULT ( STDMETHODCALLTYPE *get_VariableValue )( 
            IBxProject * This,
            /* [in] */ BSTR bstrName,
            /* [retval][out] */ BSTR *pbstrValue);
        
        HRESULT ( STDMETHODCALLTYPE *ExpandString )( 
            IBxProject * This,
            /* [in] */ BSTR strText,
            /* [retval][out] */ BSTR *pbstrExpandedText);
        
        HRESULT ( STDMETHODCALLTYPE *EscapeString )( 
            IBxProject * This,
            /* [in] */ BSTR strText,
            /* [retval][out] */ BSTR *pbstrEscapedText);
        
        HRESULT ( STDMETHODCALLTYPE *BuildAsync )( 
            IBxProject * This,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        HRESULT ( STDMETHODCALLTYPE *Build )( 
            IBxProject * This);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsModified )( 
            IBxProject * This,
            /* [retval][out] */ VARIANT_BOOL *pbModified);
        
        HRESULT ( STDMETHODCALLTYPE *RevertChanges )( 
            IBxProject * This);
        
        HRESULT ( STDMETHODCALLTYPE *get_DbVersion )( 
            IBxProject * This,
            /* [retval][out] */ int *pnDbVersion);
        
        HRESULT ( STDMETHODCALLTYPE *RegisterActiveX )( 
            IBxProject * This,
            /* [in] */ IBxFile *pActiveXFile);
        
        HRESULT ( STDMETHODCALLTYPE *RegisterActiveXAsync )( 
            IBxProject * This,
            /* [in] */ IBxFile *pActiveXFile,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        HRESULT ( STDMETHODCALLTYPE *ImportRegAsmRegistryChanges )( 
            IBxProject * This,
            /* [in] */ IBxFile *pFile);
        
        HRESULT ( STDMETHODCALLTYPE *ImportRegAsmRegistryChangesAsync )( 
            IBxProject * This,
            /* [in] */ IBxFile *pFile,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        HRESULT ( STDMETHODCALLTYPE *Close )( 
            IBxProject * This);
        
        END_INTERFACE
    } IBxProjectVtbl;

    interface IBxProject
    {
        CONST_VTBL struct IBxProjectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxProject_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxProject_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxProject_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxProject_put_Log(This,pLog)	\
    ( (This)->lpVtbl -> put_Log(This,pLog) ) 

#define IBxProject_put_InputPath(This,strPath)	\
    ( (This)->lpVtbl -> put_InputPath(This,strPath) ) 

#define IBxProject_get_InputPath(This,pstrPath)	\
    ( (This)->lpVtbl -> get_InputPath(This,pstrPath) ) 

#define IBxProject_put_OutputPath(This,strPath)	\
    ( (This)->lpVtbl -> put_OutputPath(This,strPath) ) 

#define IBxProject_get_OutputPath(This,pstrPath)	\
    ( (This)->lpVtbl -> get_OutputPath(This,pstrPath) ) 

#define IBxProject_put_ShareVirtualEnvironmentWithChildProcesses(This,bValue)	\
    ( (This)->lpVtbl -> put_ShareVirtualEnvironmentWithChildProcesses(This,bValue) ) 

#define IBxProject_get_ShareVirtualEnvironmentWithChildProcesses(This,pbValue)	\
    ( (This)->lpVtbl -> get_ShareVirtualEnvironmentWithChildProcesses(This,pbValue) ) 

#define IBxProject_put_EnableDebugLog(This,bValue)	\
    ( (This)->lpVtbl -> put_EnableDebugLog(This,bValue) ) 

#define IBxProject_get_EnableDebugLog(This,pbValue)	\
    ( (This)->lpVtbl -> get_EnableDebugLog(This,pbValue) ) 

#define IBxProject_put_EnableVirtualRegistry(This,bValue)	\
    ( (This)->lpVtbl -> put_EnableVirtualRegistry(This,bValue) ) 

#define IBxProject_get_EnableVirtualRegistry(This,pbValue)	\
    ( (This)->lpVtbl -> get_EnableVirtualRegistry(This,pbValue) ) 

#define IBxProject_put_HideVirtualFileFromFileDialog(This,bValue)	\
    ( (This)->lpVtbl -> put_HideVirtualFileFromFileDialog(This,bValue) ) 

#define IBxProject_get_HideVirtualFileFromFileDialog(This,pbValue)	\
    ( (This)->lpVtbl -> get_HideVirtualFileFromFileDialog(This,pbValue) ) 

#define IBxProject_put_AllChangesAreVirtual(This,bValue)	\
    ( (This)->lpVtbl -> put_AllChangesAreVirtual(This,bValue) ) 

#define IBxProject_get_AllChangesAreVirtual(This,pbValue)	\
    ( (This)->lpVtbl -> get_AllChangesAreVirtual(This,pbValue) ) 

#define IBxProject_put_SetIcon(This,bValue)	\
    ( (This)->lpVtbl -> put_SetIcon(This,bValue) ) 

#define IBxProject_get_SetIcon(This,pbValue)	\
    ( (This)->lpVtbl -> get_SetIcon(This,pbValue) ) 

#define IBxProject_put_IconPath(This,Value)	\
    ( (This)->lpVtbl -> put_IconPath(This,Value) ) 

#define IBxProject_get_IconPath(This,pValue)	\
    ( (This)->lpVtbl -> get_IconPath(This,pValue) ) 

#define IBxProject_put_EnableSplashScreen(This,bEnable)	\
    ( (This)->lpVtbl -> put_EnableSplashScreen(This,bEnable) ) 

#define IBxProject_get_EnableSplashScreen(This,pbEnabled)	\
    ( (This)->lpVtbl -> get_EnableSplashScreen(This,pbEnabled) ) 

#define IBxProject_put_SplashScreenPath(This,bstrValue)	\
    ( (This)->lpVtbl -> put_SplashScreenPath(This,bstrValue) ) 

#define IBxProject_get_SplashScreenPath(This,pbstrValue)	\
    ( (This)->lpVtbl -> get_SplashScreenPath(This,pbstrValue) ) 

#define IBxProject_put_OverrideVersionInformation(This,bValue)	\
    ( (This)->lpVtbl -> put_OverrideVersionInformation(This,bValue) ) 

#define IBxProject_get_OverrideVersionInformation(This,pbValue)	\
    ( (This)->lpVtbl -> get_OverrideVersionInformation(This,pbValue) ) 

#define IBxProject_put_VersionInformationParameter(This,bstrName,bstrValue)	\
    ( (This)->lpVtbl -> put_VersionInformationParameter(This,bstrName,bstrValue) ) 

#define IBxProject_get_VersionInformationParameter(This,bstrName,pbstrValue)	\
    ( (This)->lpVtbl -> get_VersionInformationParameter(This,bstrName,pbstrValue) ) 

#define IBxProject_put_FileVersion(This,v3,v2,v1,v0)	\
    ( (This)->lpVtbl -> put_FileVersion(This,v3,v2,v1,v0) ) 

#define IBxProject_get_FileVersion(This,pv3,pv2,pv1,pv0)	\
    ( (This)->lpVtbl -> get_FileVersion(This,pv3,pv2,pv1,pv0) ) 

#define IBxProject_put_OverrideCommandLine(This,bValue)	\
    ( (This)->lpVtbl -> put_OverrideCommandLine(This,bValue) ) 

#define IBxProject_get_OverrideCommandLine(This,pbValue)	\
    ( (This)->lpVtbl -> get_OverrideCommandLine(This,pbValue) ) 

#define IBxProject_put_CommandLine(This,bstrValue)	\
    ( (This)->lpVtbl -> put_CommandLine(This,bstrValue) ) 

#define IBxProject_get_CommandLine(This,pbstrValue)	\
    ( (This)->lpVtbl -> get_CommandLine(This,pbstrValue) ) 

#define IBxProject_put_CompressFiles(This,bValue)	\
    ( (This)->lpVtbl -> put_CompressFiles(This,bValue) ) 

#define IBxProject_get_CompressFiles(This,pbValue)	\
    ( (This)->lpVtbl -> get_CompressFiles(This,pbValue) ) 

#define IBxProject_put_CacheUncompressedFiles(This,bValue)	\
    ( (This)->lpVtbl -> put_CacheUncompressedFiles(This,bValue) ) 

#define IBxProject_get_CacheUncompressedFiles(This,pbValue)	\
    ( (This)->lpVtbl -> get_CacheUncompressedFiles(This,pbValue) ) 

#define IBxProject_put_EnableSplashScreenDisplayTime(This,bValue)	\
    ( (This)->lpVtbl -> put_EnableSplashScreenDisplayTime(This,bValue) ) 

#define IBxProject_get_EnableSplashScreenDisplayTime(This,pbValue)	\
    ( (This)->lpVtbl -> get_EnableSplashScreenDisplayTime(This,pbValue) ) 

#define IBxProject_put_SplashScreenDisplayTime(This,nValue)	\
    ( (This)->lpVtbl -> put_SplashScreenDisplayTime(This,nValue) ) 

#define IBxProject_get_SplashScreenDisplayTime(This,pnValue)	\
    ( (This)->lpVtbl -> get_SplashScreenDisplayTime(This,pnValue) ) 

#define IBxProject_put_HideSplashScreenOnceWindowShown(This,bValue)	\
    ( (This)->lpVtbl -> put_HideSplashScreenOnceWindowShown(This,bValue) ) 

#define IBxProject_get_HideSplashScreenOnceWindowShown(This,pbValue)	\
    ( (This)->lpVtbl -> get_HideSplashScreenOnceWindowShown(This,pbValue) ) 

#define IBxProject_put_RunAsVirtualExe(This,bValue)	\
    ( (This)->lpVtbl -> put_RunAsVirtualExe(This,bValue) ) 

#define IBxProject_get_RunAsVirtualExe(This,pbValue)	\
    ( (This)->lpVtbl -> get_RunAsVirtualExe(This,pbValue) ) 

#define IBxProject_AddListener(This,pListener,pdwCookie)	\
    ( (This)->lpVtbl -> AddListener(This,pListener,pdwCookie) ) 

#define IBxProject_RemoveListener(This,dwCookie)	\
    ( (This)->lpVtbl -> RemoveListener(This,dwCookie) ) 

#define IBxProject_LoadFromXmlFile(This,strPath)	\
    ( (This)->lpVtbl -> LoadFromXmlFile(This,strPath) ) 

#define IBxProject_LoadFromXmlFileAsync(This,strPath,pProgress,ppControl)	\
    ( (This)->lpVtbl -> LoadFromXmlFileAsync(This,strPath,pProgress,ppControl) ) 

#define IBxProject_SaveToXmlFile(This,strPath)	\
    ( (This)->lpVtbl -> SaveToXmlFile(This,strPath) ) 

#define IBxProject_SaveToXmlFileAsync(This,strPath,pProgress,ppControl)	\
    ( (This)->lpVtbl -> SaveToXmlFileAsync(This,strPath,pProgress,ppControl) ) 

#define IBxProject_LoadFromXml(This,strXml)	\
    ( (This)->lpVtbl -> LoadFromXml(This,strXml) ) 

#define IBxProject_LoadFromXmlAsync(This,strXml,pProgress,ppControl)	\
    ( (This)->lpVtbl -> LoadFromXmlAsync(This,strXml,pProgress,ppControl) ) 

#define IBxProject_SaveToXml(This,pbstrXml)	\
    ( (This)->lpVtbl -> SaveToXml(This,pbstrXml) ) 

#define IBxProject_SaveToXmlAsync(This,pbstrXml,pProgress,ppControl)	\
    ( (This)->lpVtbl -> SaveToXmlAsync(This,pbstrXml,pProgress,ppControl) ) 

#define IBxProject_LoadFromFile(This,strPath)	\
    ( (This)->lpVtbl -> LoadFromFile(This,strPath) ) 

#define IBxProject_LoadFromFileAsync(This,strPath,pProgress,ppControl)	\
    ( (This)->lpVtbl -> LoadFromFileAsync(This,strPath,pProgress,ppControl) ) 

#define IBxProject_SaveToFile(This,strPath)	\
    ( (This)->lpVtbl -> SaveToFile(This,strPath) ) 

#define IBxProject_SaveToFileAsync(This,strPath,pProgress,ppControl)	\
    ( (This)->lpVtbl -> SaveToFileAsync(This,strPath,pProgress,ppControl) ) 

#define IBxProject_LoadFromXmlStream(This,pStream)	\
    ( (This)->lpVtbl -> LoadFromXmlStream(This,pStream) ) 

#define IBxProject_LoadFromXmlStreamAsync(This,pStream,pProgress,ppControl)	\
    ( (This)->lpVtbl -> LoadFromXmlStreamAsync(This,pStream,pProgress,ppControl) ) 

#define IBxProject_SaveToXmlStream(This,pStream)	\
    ( (This)->lpVtbl -> SaveToXmlStream(This,pStream) ) 

#define IBxProject_SaveToXmlStreamAsync(This,pStream,pProgress,ppControl)	\
    ( (This)->lpVtbl -> SaveToXmlStreamAsync(This,pStream,pProgress,ppControl) ) 

#define IBxProject_get_FileSystem(This,ppFileSystem)	\
    ( (This)->lpVtbl -> get_FileSystem(This,ppFileSystem) ) 

#define IBxProject_get_Registry(This,ppRegistry)	\
    ( (This)->lpVtbl -> get_Registry(This,ppRegistry) ) 

#define IBxProject_get_VariableNames(This,ppNames)	\
    ( (This)->lpVtbl -> get_VariableNames(This,ppNames) ) 

#define IBxProject_get_VariableValue(This,bstrName,pbstrValue)	\
    ( (This)->lpVtbl -> get_VariableValue(This,bstrName,pbstrValue) ) 

#define IBxProject_ExpandString(This,strText,pbstrExpandedText)	\
    ( (This)->lpVtbl -> ExpandString(This,strText,pbstrExpandedText) ) 

#define IBxProject_EscapeString(This,strText,pbstrEscapedText)	\
    ( (This)->lpVtbl -> EscapeString(This,strText,pbstrEscapedText) ) 

#define IBxProject_BuildAsync(This,pProgress,ppControl)	\
    ( (This)->lpVtbl -> BuildAsync(This,pProgress,ppControl) ) 

#define IBxProject_Build(This)	\
    ( (This)->lpVtbl -> Build(This) ) 

#define IBxProject_get_IsModified(This,pbModified)	\
    ( (This)->lpVtbl -> get_IsModified(This,pbModified) ) 

#define IBxProject_RevertChanges(This)	\
    ( (This)->lpVtbl -> RevertChanges(This) ) 

#define IBxProject_get_DbVersion(This,pnDbVersion)	\
    ( (This)->lpVtbl -> get_DbVersion(This,pnDbVersion) ) 

#define IBxProject_RegisterActiveX(This,pActiveXFile)	\
    ( (This)->lpVtbl -> RegisterActiveX(This,pActiveXFile) ) 

#define IBxProject_RegisterActiveXAsync(This,pActiveXFile,pProgress,ppControl)	\
    ( (This)->lpVtbl -> RegisterActiveXAsync(This,pActiveXFile,pProgress,ppControl) ) 

#define IBxProject_ImportRegAsmRegistryChanges(This,pFile)	\
    ( (This)->lpVtbl -> ImportRegAsmRegistryChanges(This,pFile) ) 

#define IBxProject_ImportRegAsmRegistryChangesAsync(This,pFile,pProgress,ppControl)	\
    ( (This)->lpVtbl -> ImportRegAsmRegistryChangesAsync(This,pFile,pProgress,ppControl) ) 

#define IBxProject_Close(This)	\
    ( (This)->lpVtbl -> Close(This) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxProject_INTERFACE_DEFINED__ */


#ifndef __IBxLog_INTERFACE_DEFINED__
#define __IBxLog_INTERFACE_DEFINED__

/* interface IBxLog */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxLog;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("EE8906E1-9514-40dc-8FAD-C6E20175506B")
    IBxLog : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnMessage( 
            /* [in] */ BxEnumLogLevel LogLevel,
            /* [in] */ BSTR strMessage) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxLogVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxLog * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxLog * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxLog * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnMessage )( 
            IBxLog * This,
            /* [in] */ BxEnumLogLevel LogLevel,
            /* [in] */ BSTR strMessage);
        
        END_INTERFACE
    } IBxLogVtbl;

    interface IBxLog
    {
        CONST_VTBL struct IBxLogVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxLog_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxLog_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxLog_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxLog_OnMessage(This,LogLevel,strMessage)	\
    ( (This)->lpVtbl -> OnMessage(This,LogLevel,strMessage) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxLog_INTERFACE_DEFINED__ */


#ifndef __IBxProgressEvents_INTERFACE_DEFINED__
#define __IBxProgressEvents_INTERFACE_DEFINED__

/* interface IBxProgressEvents */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxProgressEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("697345D4-6594-4c6d-BF7A-0365DB92C0F8")
    IBxProgressEvents : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnProgress( 
            /* [in] */ int nPercent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnMessage( 
            /* [in] */ BxEnumLogLevel LogLevel,
            /* [in] */ BSTR strMessage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnFinished( 
            /* [in] */ HRESULT hr) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxProgressEventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxProgressEvents * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxProgressEvents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxProgressEvents * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnProgress )( 
            IBxProgressEvents * This,
            /* [in] */ int nPercent);
        
        HRESULT ( STDMETHODCALLTYPE *OnMessage )( 
            IBxProgressEvents * This,
            /* [in] */ BxEnumLogLevel LogLevel,
            /* [in] */ BSTR strMessage);
        
        HRESULT ( STDMETHODCALLTYPE *OnFinished )( 
            IBxProgressEvents * This,
            /* [in] */ HRESULT hr);
        
        END_INTERFACE
    } IBxProgressEventsVtbl;

    interface IBxProgressEvents
    {
        CONST_VTBL struct IBxProgressEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxProgressEvents_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxProgressEvents_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxProgressEvents_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxProgressEvents_OnProgress(This,nPercent)	\
    ( (This)->lpVtbl -> OnProgress(This,nPercent) ) 

#define IBxProgressEvents_OnMessage(This,LogLevel,strMessage)	\
    ( (This)->lpVtbl -> OnMessage(This,LogLevel,strMessage) ) 

#define IBxProgressEvents_OnFinished(This,hr)	\
    ( (This)->lpVtbl -> OnFinished(This,hr) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxProgressEvents_INTERFACE_DEFINED__ */


#ifndef __IBxProgressControl_INTERFACE_DEFINED__
#define __IBxProgressControl_INTERFACE_DEFINED__

/* interface IBxProgressControl */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxProgressControl;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("385ED822-EA54-4f9d-AB3E-E65130969745")
    IBxProgressControl : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Cancel( void) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxProgressControlVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxProgressControl * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxProgressControl * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxProgressControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *Cancel )( 
            IBxProgressControl * This);
        
        END_INTERFACE
    } IBxProgressControlVtbl;

    interface IBxProgressControl
    {
        CONST_VTBL struct IBxProgressControlVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxProgressControl_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxProgressControl_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxProgressControl_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxProgressControl_Cancel(This)	\
    ( (This)->lpVtbl -> Cancel(This) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxProgressControl_INTERFACE_DEFINED__ */


#ifndef __IBxFile_INTERFACE_DEFINED__
#define __IBxFile_INTERFACE_DEFINED__

/* interface IBxFile */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxFile;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8EEF073E-3447-4ea5-B0D4-E840CB92EE8B")
    IBxFile : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pstrName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR strName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_SourcePath( 
            /* [in] */ BSTR strSourcePath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_SourcePath( 
            /* [retval][out] */ BSTR *pstrSourcePath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_TargetPath( 
            /* [retval][out] */ BSTR *pstrTargetPath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_IsDirectory( 
            /* [retval][out] */ VARIANT_BOOL *pValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_IsPredefinedDirectory( 
            /* [retval][out] */ VARIANT_BOOL *pValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_IsVirtual( 
            /* [in] */ VARIANT_BOOL bVirtual) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_IsVirtual( 
            /* [retval][out] */ VARIANT_BOOL *pbVirtual) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_IsVirtuallyDeleted( 
            /* [in] */ VARIANT_BOOL bVirtuallyDeleted) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_IsVirtuallyDeleted( 
            /* [retval][out] */ VARIANT_BOOL *pbVirtuallyDeleted) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_IsPlugin( 
            /* [in] */ VARIANT_BOOL bNewVal) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_IsPlugin( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_RegisterAsCOMLibrary( 
            /* [in] */ VARIANT_BOOL bNewVal) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_RegisterAsCOMLibrary( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_RegisterAsTypeLib( 
            /* [in] */ VARIANT_BOOL bNewVal) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_RegisterAsTypeLib( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_RegisterAsCOMServer( 
            /* [in] */ VARIANT_BOOL bNewVal) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_RegisterAsCOMServer( 
            /* [retval][out] */ VARIANT_BOOL *pbValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_RegisterAsCOMServerCmdLineArgs( 
            /* [in] */ BSTR NewVal) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_RegisterAsCOMServerCmdLineArgs( 
            /* [retval][out] */ BSTR *pValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddFile( 
            /* [in] */ BSTR strName,
            /* [in] */ BSTR strSourcePath,
            /* [in] */ VARIANT_BOOL bVirtual,
            /* [retval][out] */ IBxFile **ppFile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddDirectory( 
            /* [in] */ BSTR strName,
            /* [in] */ VARIANT_BOOL bVirtual,
            /* [retval][out] */ IBxFile **ppFile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveFile( 
            /* [in] */ BSTR strName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindFile( 
            /* [in] */ BSTR strName,
            /* [retval][out] */ IBxFile **ppFile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnumFile( 
            /* [retval][out] */ IBxEnumFile **ppEnumFile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_FileCount( 
            /* [retval][out] */ int *pnCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindPath( 
            /* [in] */ BSTR strRelativePath,
            /* [retval][out] */ IBxFile **ppFile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveByPath( 
            /* [in] */ BSTR strRelativePath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveAllFiles( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ContainsSubdirectory( 
            /* [retval][out] */ VARIANT_BOOL *pbContains) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ IBxFile **ppParentFile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddListener( 
            /* [in] */ IBxFileEvents *pFileEvents,
            /* [retval][out] */ DWORD *pdwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveListener( 
            /* [in] */ DWORD dwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_PredefinedDirectoryType( 
            /* [retval][out] */ BxEnumPredefinedDirectory *pPredefinedDirectory) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveTo( 
            /* [in] */ IBxFile *pTargetDir,
            /* [in] */ VARIANT_BOOL bOverwriteExisting) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_Id( 
            /* [retval][out] */ __int64 *pnId) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxFileVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxFile * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxFile * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxFile * This);
        
        HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IBxFile * This,
            /* [retval][out] */ BSTR *pstrName);
        
        HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IBxFile * This,
            /* [in] */ BSTR strName);
        
        HRESULT ( STDMETHODCALLTYPE *put_SourcePath )( 
            IBxFile * This,
            /* [in] */ BSTR strSourcePath);
        
        HRESULT ( STDMETHODCALLTYPE *get_SourcePath )( 
            IBxFile * This,
            /* [retval][out] */ BSTR *pstrSourcePath);
        
        HRESULT ( STDMETHODCALLTYPE *get_TargetPath )( 
            IBxFile * This,
            /* [retval][out] */ BSTR *pstrTargetPath);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsDirectory )( 
            IBxFile * This,
            /* [retval][out] */ VARIANT_BOOL *pValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsPredefinedDirectory )( 
            IBxFile * This,
            /* [retval][out] */ VARIANT_BOOL *pValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_IsVirtual )( 
            IBxFile * This,
            /* [in] */ VARIANT_BOOL bVirtual);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsVirtual )( 
            IBxFile * This,
            /* [retval][out] */ VARIANT_BOOL *pbVirtual);
        
        HRESULT ( STDMETHODCALLTYPE *put_IsVirtuallyDeleted )( 
            IBxFile * This,
            /* [in] */ VARIANT_BOOL bVirtuallyDeleted);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsVirtuallyDeleted )( 
            IBxFile * This,
            /* [retval][out] */ VARIANT_BOOL *pbVirtuallyDeleted);
        
        HRESULT ( STDMETHODCALLTYPE *put_IsPlugin )( 
            IBxFile * This,
            /* [in] */ VARIANT_BOOL bNewVal);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsPlugin )( 
            IBxFile * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_RegisterAsCOMLibrary )( 
            IBxFile * This,
            /* [in] */ VARIANT_BOOL bNewVal);
        
        HRESULT ( STDMETHODCALLTYPE *get_RegisterAsCOMLibrary )( 
            IBxFile * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_RegisterAsTypeLib )( 
            IBxFile * This,
            /* [in] */ VARIANT_BOOL bNewVal);
        
        HRESULT ( STDMETHODCALLTYPE *get_RegisterAsTypeLib )( 
            IBxFile * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_RegisterAsCOMServer )( 
            IBxFile * This,
            /* [in] */ VARIANT_BOOL bNewVal);
        
        HRESULT ( STDMETHODCALLTYPE *get_RegisterAsCOMServer )( 
            IBxFile * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_RegisterAsCOMServerCmdLineArgs )( 
            IBxFile * This,
            /* [in] */ BSTR NewVal);
        
        HRESULT ( STDMETHODCALLTYPE *get_RegisterAsCOMServerCmdLineArgs )( 
            IBxFile * This,
            /* [retval][out] */ BSTR *pValue);
        
        HRESULT ( STDMETHODCALLTYPE *AddFile )( 
            IBxFile * This,
            /* [in] */ BSTR strName,
            /* [in] */ BSTR strSourcePath,
            /* [in] */ VARIANT_BOOL bVirtual,
            /* [retval][out] */ IBxFile **ppFile);
        
        HRESULT ( STDMETHODCALLTYPE *AddDirectory )( 
            IBxFile * This,
            /* [in] */ BSTR strName,
            /* [in] */ VARIANT_BOOL bVirtual,
            /* [retval][out] */ IBxFile **ppFile);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveFile )( 
            IBxFile * This,
            /* [in] */ BSTR strName);
        
        HRESULT ( STDMETHODCALLTYPE *FindFile )( 
            IBxFile * This,
            /* [in] */ BSTR strName,
            /* [retval][out] */ IBxFile **ppFile);
        
        HRESULT ( STDMETHODCALLTYPE *EnumFile )( 
            IBxFile * This,
            /* [retval][out] */ IBxEnumFile **ppEnumFile);
        
        HRESULT ( STDMETHODCALLTYPE *get_FileCount )( 
            IBxFile * This,
            /* [retval][out] */ int *pnCount);
        
        HRESULT ( STDMETHODCALLTYPE *FindPath )( 
            IBxFile * This,
            /* [in] */ BSTR strRelativePath,
            /* [retval][out] */ IBxFile **ppFile);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveByPath )( 
            IBxFile * This,
            /* [in] */ BSTR strRelativePath);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveAllFiles )( 
            IBxFile * This);
        
        HRESULT ( STDMETHODCALLTYPE *ContainsSubdirectory )( 
            IBxFile * This,
            /* [retval][out] */ VARIANT_BOOL *pbContains);
        
        HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            IBxFile * This,
            /* [retval][out] */ IBxFile **ppParentFile);
        
        HRESULT ( STDMETHODCALLTYPE *AddListener )( 
            IBxFile * This,
            /* [in] */ IBxFileEvents *pFileEvents,
            /* [retval][out] */ DWORD *pdwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveListener )( 
            IBxFile * This,
            /* [in] */ DWORD dwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *get_PredefinedDirectoryType )( 
            IBxFile * This,
            /* [retval][out] */ BxEnumPredefinedDirectory *pPredefinedDirectory);
        
        HRESULT ( STDMETHODCALLTYPE *MoveTo )( 
            IBxFile * This,
            /* [in] */ IBxFile *pTargetDir,
            /* [in] */ VARIANT_BOOL bOverwriteExisting);
        
        HRESULT ( STDMETHODCALLTYPE *get_Id )( 
            IBxFile * This,
            /* [retval][out] */ __int64 *pnId);
        
        END_INTERFACE
    } IBxFileVtbl;

    interface IBxFile
    {
        CONST_VTBL struct IBxFileVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxFile_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxFile_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxFile_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxFile_get_Name(This,pstrName)	\
    ( (This)->lpVtbl -> get_Name(This,pstrName) ) 

#define IBxFile_put_Name(This,strName)	\
    ( (This)->lpVtbl -> put_Name(This,strName) ) 

#define IBxFile_put_SourcePath(This,strSourcePath)	\
    ( (This)->lpVtbl -> put_SourcePath(This,strSourcePath) ) 

#define IBxFile_get_SourcePath(This,pstrSourcePath)	\
    ( (This)->lpVtbl -> get_SourcePath(This,pstrSourcePath) ) 

#define IBxFile_get_TargetPath(This,pstrTargetPath)	\
    ( (This)->lpVtbl -> get_TargetPath(This,pstrTargetPath) ) 

#define IBxFile_get_IsDirectory(This,pValue)	\
    ( (This)->lpVtbl -> get_IsDirectory(This,pValue) ) 

#define IBxFile_get_IsPredefinedDirectory(This,pValue)	\
    ( (This)->lpVtbl -> get_IsPredefinedDirectory(This,pValue) ) 

#define IBxFile_put_IsVirtual(This,bVirtual)	\
    ( (This)->lpVtbl -> put_IsVirtual(This,bVirtual) ) 

#define IBxFile_get_IsVirtual(This,pbVirtual)	\
    ( (This)->lpVtbl -> get_IsVirtual(This,pbVirtual) ) 

#define IBxFile_put_IsVirtuallyDeleted(This,bVirtuallyDeleted)	\
    ( (This)->lpVtbl -> put_IsVirtuallyDeleted(This,bVirtuallyDeleted) ) 

#define IBxFile_get_IsVirtuallyDeleted(This,pbVirtuallyDeleted)	\
    ( (This)->lpVtbl -> get_IsVirtuallyDeleted(This,pbVirtuallyDeleted) ) 

#define IBxFile_put_IsPlugin(This,bNewVal)	\
    ( (This)->lpVtbl -> put_IsPlugin(This,bNewVal) ) 

#define IBxFile_get_IsPlugin(This,pbValue)	\
    ( (This)->lpVtbl -> get_IsPlugin(This,pbValue) ) 

#define IBxFile_put_RegisterAsCOMLibrary(This,bNewVal)	\
    ( (This)->lpVtbl -> put_RegisterAsCOMLibrary(This,bNewVal) ) 

#define IBxFile_get_RegisterAsCOMLibrary(This,pbValue)	\
    ( (This)->lpVtbl -> get_RegisterAsCOMLibrary(This,pbValue) ) 

#define IBxFile_put_RegisterAsTypeLib(This,bNewVal)	\
    ( (This)->lpVtbl -> put_RegisterAsTypeLib(This,bNewVal) ) 

#define IBxFile_get_RegisterAsTypeLib(This,pbValue)	\
    ( (This)->lpVtbl -> get_RegisterAsTypeLib(This,pbValue) ) 

#define IBxFile_put_RegisterAsCOMServer(This,bNewVal)	\
    ( (This)->lpVtbl -> put_RegisterAsCOMServer(This,bNewVal) ) 

#define IBxFile_get_RegisterAsCOMServer(This,pbValue)	\
    ( (This)->lpVtbl -> get_RegisterAsCOMServer(This,pbValue) ) 

#define IBxFile_put_RegisterAsCOMServerCmdLineArgs(This,NewVal)	\
    ( (This)->lpVtbl -> put_RegisterAsCOMServerCmdLineArgs(This,NewVal) ) 

#define IBxFile_get_RegisterAsCOMServerCmdLineArgs(This,pValue)	\
    ( (This)->lpVtbl -> get_RegisterAsCOMServerCmdLineArgs(This,pValue) ) 

#define IBxFile_AddFile(This,strName,strSourcePath,bVirtual,ppFile)	\
    ( (This)->lpVtbl -> AddFile(This,strName,strSourcePath,bVirtual,ppFile) ) 

#define IBxFile_AddDirectory(This,strName,bVirtual,ppFile)	\
    ( (This)->lpVtbl -> AddDirectory(This,strName,bVirtual,ppFile) ) 

#define IBxFile_RemoveFile(This,strName)	\
    ( (This)->lpVtbl -> RemoveFile(This,strName) ) 

#define IBxFile_FindFile(This,strName,ppFile)	\
    ( (This)->lpVtbl -> FindFile(This,strName,ppFile) ) 

#define IBxFile_EnumFile(This,ppEnumFile)	\
    ( (This)->lpVtbl -> EnumFile(This,ppEnumFile) ) 

#define IBxFile_get_FileCount(This,pnCount)	\
    ( (This)->lpVtbl -> get_FileCount(This,pnCount) ) 

#define IBxFile_FindPath(This,strRelativePath,ppFile)	\
    ( (This)->lpVtbl -> FindPath(This,strRelativePath,ppFile) ) 

#define IBxFile_RemoveByPath(This,strRelativePath)	\
    ( (This)->lpVtbl -> RemoveByPath(This,strRelativePath) ) 

#define IBxFile_RemoveAllFiles(This)	\
    ( (This)->lpVtbl -> RemoveAllFiles(This) ) 

#define IBxFile_ContainsSubdirectory(This,pbContains)	\
    ( (This)->lpVtbl -> ContainsSubdirectory(This,pbContains) ) 

#define IBxFile_get_Parent(This,ppParentFile)	\
    ( (This)->lpVtbl -> get_Parent(This,ppParentFile) ) 

#define IBxFile_AddListener(This,pFileEvents,pdwCookie)	\
    ( (This)->lpVtbl -> AddListener(This,pFileEvents,pdwCookie) ) 

#define IBxFile_RemoveListener(This,dwCookie)	\
    ( (This)->lpVtbl -> RemoveListener(This,dwCookie) ) 

#define IBxFile_get_PredefinedDirectoryType(This,pPredefinedDirectory)	\
    ( (This)->lpVtbl -> get_PredefinedDirectoryType(This,pPredefinedDirectory) ) 

#define IBxFile_MoveTo(This,pTargetDir,bOverwriteExisting)	\
    ( (This)->lpVtbl -> MoveTo(This,pTargetDir,bOverwriteExisting) ) 

#define IBxFile_get_Id(This,pnId)	\
    ( (This)->lpVtbl -> get_Id(This,pnId) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxFile_INTERFACE_DEFINED__ */


#ifndef __IBxFileSystem_INTERFACE_DEFINED__
#define __IBxFileSystem_INTERFACE_DEFINED__

/* interface IBxFileSystem */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxFileSystem;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("820ABE4D-E563-4c18-A5BE-F6D2CCB7D88E")
    IBxFileSystem : public IBxFile
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE get_PredefinedDirectoryById( 
            /* [in] */ BxEnumPredefinedDirectory PredefinedDirectory,
            /* [retval][out] */ IBxFile **ppPredefinedDirectory) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_PredefinedDirectoryByName( 
            /* [in] */ BSTR bstrName,
            /* [retval][out] */ IBxFile **ppPredefinedDirectory) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxFileSystemVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxFileSystem * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxFileSystem * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxFileSystem * This);
        
        HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IBxFileSystem * This,
            /* [retval][out] */ BSTR *pstrName);
        
        HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IBxFileSystem * This,
            /* [in] */ BSTR strName);
        
        HRESULT ( STDMETHODCALLTYPE *put_SourcePath )( 
            IBxFileSystem * This,
            /* [in] */ BSTR strSourcePath);
        
        HRESULT ( STDMETHODCALLTYPE *get_SourcePath )( 
            IBxFileSystem * This,
            /* [retval][out] */ BSTR *pstrSourcePath);
        
        HRESULT ( STDMETHODCALLTYPE *get_TargetPath )( 
            IBxFileSystem * This,
            /* [retval][out] */ BSTR *pstrTargetPath);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsDirectory )( 
            IBxFileSystem * This,
            /* [retval][out] */ VARIANT_BOOL *pValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsPredefinedDirectory )( 
            IBxFileSystem * This,
            /* [retval][out] */ VARIANT_BOOL *pValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_IsVirtual )( 
            IBxFileSystem * This,
            /* [in] */ VARIANT_BOOL bVirtual);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsVirtual )( 
            IBxFileSystem * This,
            /* [retval][out] */ VARIANT_BOOL *pbVirtual);
        
        HRESULT ( STDMETHODCALLTYPE *put_IsVirtuallyDeleted )( 
            IBxFileSystem * This,
            /* [in] */ VARIANT_BOOL bVirtuallyDeleted);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsVirtuallyDeleted )( 
            IBxFileSystem * This,
            /* [retval][out] */ VARIANT_BOOL *pbVirtuallyDeleted);
        
        HRESULT ( STDMETHODCALLTYPE *put_IsPlugin )( 
            IBxFileSystem * This,
            /* [in] */ VARIANT_BOOL bNewVal);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsPlugin )( 
            IBxFileSystem * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_RegisterAsCOMLibrary )( 
            IBxFileSystem * This,
            /* [in] */ VARIANT_BOOL bNewVal);
        
        HRESULT ( STDMETHODCALLTYPE *get_RegisterAsCOMLibrary )( 
            IBxFileSystem * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_RegisterAsTypeLib )( 
            IBxFileSystem * This,
            /* [in] */ VARIANT_BOOL bNewVal);
        
        HRESULT ( STDMETHODCALLTYPE *get_RegisterAsTypeLib )( 
            IBxFileSystem * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_RegisterAsCOMServer )( 
            IBxFileSystem * This,
            /* [in] */ VARIANT_BOOL bNewVal);
        
        HRESULT ( STDMETHODCALLTYPE *get_RegisterAsCOMServer )( 
            IBxFileSystem * This,
            /* [retval][out] */ VARIANT_BOOL *pbValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_RegisterAsCOMServerCmdLineArgs )( 
            IBxFileSystem * This,
            /* [in] */ BSTR NewVal);
        
        HRESULT ( STDMETHODCALLTYPE *get_RegisterAsCOMServerCmdLineArgs )( 
            IBxFileSystem * This,
            /* [retval][out] */ BSTR *pValue);
        
        HRESULT ( STDMETHODCALLTYPE *AddFile )( 
            IBxFileSystem * This,
            /* [in] */ BSTR strName,
            /* [in] */ BSTR strSourcePath,
            /* [in] */ VARIANT_BOOL bVirtual,
            /* [retval][out] */ IBxFile **ppFile);
        
        HRESULT ( STDMETHODCALLTYPE *AddDirectory )( 
            IBxFileSystem * This,
            /* [in] */ BSTR strName,
            /* [in] */ VARIANT_BOOL bVirtual,
            /* [retval][out] */ IBxFile **ppFile);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveFile )( 
            IBxFileSystem * This,
            /* [in] */ BSTR strName);
        
        HRESULT ( STDMETHODCALLTYPE *FindFile )( 
            IBxFileSystem * This,
            /* [in] */ BSTR strName,
            /* [retval][out] */ IBxFile **ppFile);
        
        HRESULT ( STDMETHODCALLTYPE *EnumFile )( 
            IBxFileSystem * This,
            /* [retval][out] */ IBxEnumFile **ppEnumFile);
        
        HRESULT ( STDMETHODCALLTYPE *get_FileCount )( 
            IBxFileSystem * This,
            /* [retval][out] */ int *pnCount);
        
        HRESULT ( STDMETHODCALLTYPE *FindPath )( 
            IBxFileSystem * This,
            /* [in] */ BSTR strRelativePath,
            /* [retval][out] */ IBxFile **ppFile);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveByPath )( 
            IBxFileSystem * This,
            /* [in] */ BSTR strRelativePath);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveAllFiles )( 
            IBxFileSystem * This);
        
        HRESULT ( STDMETHODCALLTYPE *ContainsSubdirectory )( 
            IBxFileSystem * This,
            /* [retval][out] */ VARIANT_BOOL *pbContains);
        
        HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            IBxFileSystem * This,
            /* [retval][out] */ IBxFile **ppParentFile);
        
        HRESULT ( STDMETHODCALLTYPE *AddListener )( 
            IBxFileSystem * This,
            /* [in] */ IBxFileEvents *pFileEvents,
            /* [retval][out] */ DWORD *pdwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveListener )( 
            IBxFileSystem * This,
            /* [in] */ DWORD dwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *get_PredefinedDirectoryType )( 
            IBxFileSystem * This,
            /* [retval][out] */ BxEnumPredefinedDirectory *pPredefinedDirectory);
        
        HRESULT ( STDMETHODCALLTYPE *MoveTo )( 
            IBxFileSystem * This,
            /* [in] */ IBxFile *pTargetDir,
            /* [in] */ VARIANT_BOOL bOverwriteExisting);
        
        HRESULT ( STDMETHODCALLTYPE *get_Id )( 
            IBxFileSystem * This,
            /* [retval][out] */ __int64 *pnId);
        
        HRESULT ( STDMETHODCALLTYPE *get_PredefinedDirectoryById )( 
            IBxFileSystem * This,
            /* [in] */ BxEnumPredefinedDirectory PredefinedDirectory,
            /* [retval][out] */ IBxFile **ppPredefinedDirectory);
        
        HRESULT ( STDMETHODCALLTYPE *get_PredefinedDirectoryByName )( 
            IBxFileSystem * This,
            /* [in] */ BSTR bstrName,
            /* [retval][out] */ IBxFile **ppPredefinedDirectory);
        
        END_INTERFACE
    } IBxFileSystemVtbl;

    interface IBxFileSystem
    {
        CONST_VTBL struct IBxFileSystemVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxFileSystem_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxFileSystem_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxFileSystem_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxFileSystem_get_Name(This,pstrName)	\
    ( (This)->lpVtbl -> get_Name(This,pstrName) ) 

#define IBxFileSystem_put_Name(This,strName)	\
    ( (This)->lpVtbl -> put_Name(This,strName) ) 

#define IBxFileSystem_put_SourcePath(This,strSourcePath)	\
    ( (This)->lpVtbl -> put_SourcePath(This,strSourcePath) ) 

#define IBxFileSystem_get_SourcePath(This,pstrSourcePath)	\
    ( (This)->lpVtbl -> get_SourcePath(This,pstrSourcePath) ) 

#define IBxFileSystem_get_TargetPath(This,pstrTargetPath)	\
    ( (This)->lpVtbl -> get_TargetPath(This,pstrTargetPath) ) 

#define IBxFileSystem_get_IsDirectory(This,pValue)	\
    ( (This)->lpVtbl -> get_IsDirectory(This,pValue) ) 

#define IBxFileSystem_get_IsPredefinedDirectory(This,pValue)	\
    ( (This)->lpVtbl -> get_IsPredefinedDirectory(This,pValue) ) 

#define IBxFileSystem_put_IsVirtual(This,bVirtual)	\
    ( (This)->lpVtbl -> put_IsVirtual(This,bVirtual) ) 

#define IBxFileSystem_get_IsVirtual(This,pbVirtual)	\
    ( (This)->lpVtbl -> get_IsVirtual(This,pbVirtual) ) 

#define IBxFileSystem_put_IsVirtuallyDeleted(This,bVirtuallyDeleted)	\
    ( (This)->lpVtbl -> put_IsVirtuallyDeleted(This,bVirtuallyDeleted) ) 

#define IBxFileSystem_get_IsVirtuallyDeleted(This,pbVirtuallyDeleted)	\
    ( (This)->lpVtbl -> get_IsVirtuallyDeleted(This,pbVirtuallyDeleted) ) 

#define IBxFileSystem_put_IsPlugin(This,bNewVal)	\
    ( (This)->lpVtbl -> put_IsPlugin(This,bNewVal) ) 

#define IBxFileSystem_get_IsPlugin(This,pbValue)	\
    ( (This)->lpVtbl -> get_IsPlugin(This,pbValue) ) 

#define IBxFileSystem_put_RegisterAsCOMLibrary(This,bNewVal)	\
    ( (This)->lpVtbl -> put_RegisterAsCOMLibrary(This,bNewVal) ) 

#define IBxFileSystem_get_RegisterAsCOMLibrary(This,pbValue)	\
    ( (This)->lpVtbl -> get_RegisterAsCOMLibrary(This,pbValue) ) 

#define IBxFileSystem_put_RegisterAsTypeLib(This,bNewVal)	\
    ( (This)->lpVtbl -> put_RegisterAsTypeLib(This,bNewVal) ) 

#define IBxFileSystem_get_RegisterAsTypeLib(This,pbValue)	\
    ( (This)->lpVtbl -> get_RegisterAsTypeLib(This,pbValue) ) 

#define IBxFileSystem_put_RegisterAsCOMServer(This,bNewVal)	\
    ( (This)->lpVtbl -> put_RegisterAsCOMServer(This,bNewVal) ) 

#define IBxFileSystem_get_RegisterAsCOMServer(This,pbValue)	\
    ( (This)->lpVtbl -> get_RegisterAsCOMServer(This,pbValue) ) 

#define IBxFileSystem_put_RegisterAsCOMServerCmdLineArgs(This,NewVal)	\
    ( (This)->lpVtbl -> put_RegisterAsCOMServerCmdLineArgs(This,NewVal) ) 

#define IBxFileSystem_get_RegisterAsCOMServerCmdLineArgs(This,pValue)	\
    ( (This)->lpVtbl -> get_RegisterAsCOMServerCmdLineArgs(This,pValue) ) 

#define IBxFileSystem_AddFile(This,strName,strSourcePath,bVirtual,ppFile)	\
    ( (This)->lpVtbl -> AddFile(This,strName,strSourcePath,bVirtual,ppFile) ) 

#define IBxFileSystem_AddDirectory(This,strName,bVirtual,ppFile)	\
    ( (This)->lpVtbl -> AddDirectory(This,strName,bVirtual,ppFile) ) 

#define IBxFileSystem_RemoveFile(This,strName)	\
    ( (This)->lpVtbl -> RemoveFile(This,strName) ) 

#define IBxFileSystem_FindFile(This,strName,ppFile)	\
    ( (This)->lpVtbl -> FindFile(This,strName,ppFile) ) 

#define IBxFileSystem_EnumFile(This,ppEnumFile)	\
    ( (This)->lpVtbl -> EnumFile(This,ppEnumFile) ) 

#define IBxFileSystem_get_FileCount(This,pnCount)	\
    ( (This)->lpVtbl -> get_FileCount(This,pnCount) ) 

#define IBxFileSystem_FindPath(This,strRelativePath,ppFile)	\
    ( (This)->lpVtbl -> FindPath(This,strRelativePath,ppFile) ) 

#define IBxFileSystem_RemoveByPath(This,strRelativePath)	\
    ( (This)->lpVtbl -> RemoveByPath(This,strRelativePath) ) 

#define IBxFileSystem_RemoveAllFiles(This)	\
    ( (This)->lpVtbl -> RemoveAllFiles(This) ) 

#define IBxFileSystem_ContainsSubdirectory(This,pbContains)	\
    ( (This)->lpVtbl -> ContainsSubdirectory(This,pbContains) ) 

#define IBxFileSystem_get_Parent(This,ppParentFile)	\
    ( (This)->lpVtbl -> get_Parent(This,ppParentFile) ) 

#define IBxFileSystem_AddListener(This,pFileEvents,pdwCookie)	\
    ( (This)->lpVtbl -> AddListener(This,pFileEvents,pdwCookie) ) 

#define IBxFileSystem_RemoveListener(This,dwCookie)	\
    ( (This)->lpVtbl -> RemoveListener(This,dwCookie) ) 

#define IBxFileSystem_get_PredefinedDirectoryType(This,pPredefinedDirectory)	\
    ( (This)->lpVtbl -> get_PredefinedDirectoryType(This,pPredefinedDirectory) ) 

#define IBxFileSystem_MoveTo(This,pTargetDir,bOverwriteExisting)	\
    ( (This)->lpVtbl -> MoveTo(This,pTargetDir,bOverwriteExisting) ) 

#define IBxFileSystem_get_Id(This,pnId)	\
    ( (This)->lpVtbl -> get_Id(This,pnId) ) 


#define IBxFileSystem_get_PredefinedDirectoryById(This,PredefinedDirectory,ppPredefinedDirectory)	\
    ( (This)->lpVtbl -> get_PredefinedDirectoryById(This,PredefinedDirectory,ppPredefinedDirectory) ) 

#define IBxFileSystem_get_PredefinedDirectoryByName(This,bstrName,ppPredefinedDirectory)	\
    ( (This)->lpVtbl -> get_PredefinedDirectoryByName(This,bstrName,ppPredefinedDirectory) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxFileSystem_INTERFACE_DEFINED__ */


#ifndef __IBxEnumFile_INTERFACE_DEFINED__
#define __IBxEnumFile_INTERFACE_DEFINED__

/* interface IBxEnumFile */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxEnumFile;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0E8E8399-CEBA-499f-92CF-3FF7997C5B33")
    IBxEnumFile : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Next( 
            /* [in] */ ULONG nRequestedCount,
            /* [out] */ IBxFile **ppFiles,
            /* [out] */ ULONG *pnFetchedCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Skip( 
            /* [in] */ ULONG nCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Clone( 
            /* [out] */ IBxEnumFile **ppEnumFile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE NextAsArray( 
            /* [in] */ ULONG nRequestedCount,
            /* [out] */ SAFEARRAY * *ppFiles) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddFilter( 
            /* [in] */ BxEnumFileFilter filter) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddPropSortOrder( 
            /* [in] */ BxEnumFileProp prop,
            /* [in] */ BxEnumSortOrder order) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxEnumFileVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxEnumFile * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxEnumFile * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxEnumFile * This);
        
        HRESULT ( STDMETHODCALLTYPE *Next )( 
            IBxEnumFile * This,
            /* [in] */ ULONG nRequestedCount,
            /* [out] */ IBxFile **ppFiles,
            /* [out] */ ULONG *pnFetchedCount);
        
        HRESULT ( STDMETHODCALLTYPE *Skip )( 
            IBxEnumFile * This,
            /* [in] */ ULONG nCount);
        
        HRESULT ( STDMETHODCALLTYPE *Reset )( 
            IBxEnumFile * This);
        
        HRESULT ( STDMETHODCALLTYPE *Clone )( 
            IBxEnumFile * This,
            /* [out] */ IBxEnumFile **ppEnumFile);
        
        HRESULT ( STDMETHODCALLTYPE *NextAsArray )( 
            IBxEnumFile * This,
            /* [in] */ ULONG nRequestedCount,
            /* [out] */ SAFEARRAY * *ppFiles);
        
        HRESULT ( STDMETHODCALLTYPE *AddFilter )( 
            IBxEnumFile * This,
            /* [in] */ BxEnumFileFilter filter);
        
        HRESULT ( STDMETHODCALLTYPE *AddPropSortOrder )( 
            IBxEnumFile * This,
            /* [in] */ BxEnumFileProp prop,
            /* [in] */ BxEnumSortOrder order);
        
        END_INTERFACE
    } IBxEnumFileVtbl;

    interface IBxEnumFile
    {
        CONST_VTBL struct IBxEnumFileVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxEnumFile_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxEnumFile_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxEnumFile_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxEnumFile_Next(This,nRequestedCount,ppFiles,pnFetchedCount)	\
    ( (This)->lpVtbl -> Next(This,nRequestedCount,ppFiles,pnFetchedCount) ) 

#define IBxEnumFile_Skip(This,nCount)	\
    ( (This)->lpVtbl -> Skip(This,nCount) ) 

#define IBxEnumFile_Reset(This)	\
    ( (This)->lpVtbl -> Reset(This) ) 

#define IBxEnumFile_Clone(This,ppEnumFile)	\
    ( (This)->lpVtbl -> Clone(This,ppEnumFile) ) 

#define IBxEnumFile_NextAsArray(This,nRequestedCount,ppFiles)	\
    ( (This)->lpVtbl -> NextAsArray(This,nRequestedCount,ppFiles) ) 

#define IBxEnumFile_AddFilter(This,filter)	\
    ( (This)->lpVtbl -> AddFilter(This,filter) ) 

#define IBxEnumFile_AddPropSortOrder(This,prop,order)	\
    ( (This)->lpVtbl -> AddPropSortOrder(This,prop,order) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxEnumFile_INTERFACE_DEFINED__ */


#ifndef __IBxFileEvents_INTERFACE_DEFINED__
#define __IBxFileEvents_INTERFACE_DEFINED__

/* interface IBxFileEvents */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxFileEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5978F508-CE73-4e0e-82B6-C2E627889703")
    IBxFileEvents : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnSubscribed( 
            IBxFile *pFile,
            DWORD dwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnUnsubscribed( 
            IBxFile *pFile,
            DWORD dwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnPropChanged( 
            IBxFile *pFile,
            BxEnumFileProp propid) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnFileAdded( 
            IBxFile *pFile,
            IBxFile *pAddedChildFile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnFileRemoved( 
            IBxFile *pFile,
            IBxFile *pRemovedChildFile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnRemoved( 
            IBxFile *pFile) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxFileEventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxFileEvents * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxFileEvents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxFileEvents * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnSubscribed )( 
            IBxFileEvents * This,
            IBxFile *pFile,
            DWORD dwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *OnUnsubscribed )( 
            IBxFileEvents * This,
            IBxFile *pFile,
            DWORD dwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *OnPropChanged )( 
            IBxFileEvents * This,
            IBxFile *pFile,
            BxEnumFileProp propid);
        
        HRESULT ( STDMETHODCALLTYPE *OnFileAdded )( 
            IBxFileEvents * This,
            IBxFile *pFile,
            IBxFile *pAddedChildFile);
        
        HRESULT ( STDMETHODCALLTYPE *OnFileRemoved )( 
            IBxFileEvents * This,
            IBxFile *pFile,
            IBxFile *pRemovedChildFile);
        
        HRESULT ( STDMETHODCALLTYPE *OnRemoved )( 
            IBxFileEvents * This,
            IBxFile *pFile);
        
        END_INTERFACE
    } IBxFileEventsVtbl;

    interface IBxFileEvents
    {
        CONST_VTBL struct IBxFileEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxFileEvents_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxFileEvents_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxFileEvents_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxFileEvents_OnSubscribed(This,pFile,dwCookie)	\
    ( (This)->lpVtbl -> OnSubscribed(This,pFile,dwCookie) ) 

#define IBxFileEvents_OnUnsubscribed(This,pFile,dwCookie)	\
    ( (This)->lpVtbl -> OnUnsubscribed(This,pFile,dwCookie) ) 

#define IBxFileEvents_OnPropChanged(This,pFile,propid)	\
    ( (This)->lpVtbl -> OnPropChanged(This,pFile,propid) ) 

#define IBxFileEvents_OnFileAdded(This,pFile,pAddedChildFile)	\
    ( (This)->lpVtbl -> OnFileAdded(This,pFile,pAddedChildFile) ) 

#define IBxFileEvents_OnFileRemoved(This,pFile,pRemovedChildFile)	\
    ( (This)->lpVtbl -> OnFileRemoved(This,pFile,pRemovedChildFile) ) 

#define IBxFileEvents_OnRemoved(This,pFile)	\
    ( (This)->lpVtbl -> OnRemoved(This,pFile) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxFileEvents_INTERFACE_DEFINED__ */


#ifndef __IBxRegKey_INTERFACE_DEFINED__
#define __IBxRegKey_INTERFACE_DEFINED__

/* interface IBxRegKey */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxRegKey;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A583CBB2-8D18-4cf2-AEB0-6869D60F66A7")
    IBxRegKey : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pstrName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR strName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_IsPredefinedKey( 
            /* [retval][out] */ VARIANT_BOOL *pValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_PredefinedKeyType( 
            /* [retval][out] */ BxEnumPredefinedKey *pType) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_IsVirtual( 
            /* [in] */ VARIANT_BOOL bVirtual) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_IsVirtual( 
            /* [retval][out] */ VARIANT_BOOL *pbVirtual) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_IsVirtuallyDeleted( 
            /* [in] */ VARIANT_BOOL bVirtuallyDeleted) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_IsVirtuallyDeleted( 
            /* [retval][out] */ VARIANT_BOOL *pbVirtuallyDeleted) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddKey( 
            /* [in] */ BSTR strName,
            /* [in] */ VARIANT_BOOL bVirtual,
            /* [retval][out] */ IBxRegKey **ppRegKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveKey( 
            /* [in] */ BSTR strName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindKey( 
            /* [in] */ BSTR strName,
            /* [retval][out] */ IBxRegKey **ppRegKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnumKey( 
            /* [retval][out] */ IBxEnumRegKey **ppEnumRegKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_KeyCount( 
            /* [retval][out] */ int *pnCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddValue( 
            /* [in] */ BSTR strName,
            /* [in] */ VARIANT_BOOL bVirtual,
            /* [in] */ BxEnumRegValueType type,
            /* [retval][out] */ IBxRegValue **ppRegValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveValue( 
            /* [in] */ BSTR strName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindValue( 
            /* [in] */ BSTR strName,
            /* [retval][out] */ IBxRegValue **ppRegValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnumValue( 
            /* [retval][out] */ IBxEnumRegValue **ppEnumRegValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveTo( 
            /* [in] */ IBxRegKey *pNewParentKey,
            /* [in] */ VARIANT_BOOL bOverwriteExisting) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_ValueCount( 
            /* [retval][out] */ int *pnCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ContainsKey( 
            /* [retval][out] */ VARIANT_BOOL *pbContains) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ IBxRegKey **ppParentKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddListener( 
            /* [in] */ IBxRegKeyEvents *pEvents,
            /* [retval][out] */ DWORD *pdwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveListener( 
            /* [in] */ DWORD dwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_FullPath( 
            /* [retval][out] */ BSTR *pbstrFullPath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindKeyByPath( 
            /* [in] */ BSTR strPath,
            /* [retval][out] */ IBxRegKey **ppRegKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_Id( 
            /* [retval][out] */ __int64 *pnId) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxRegKeyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxRegKey * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxRegKey * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxRegKey * This);
        
        HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IBxRegKey * This,
            /* [retval][out] */ BSTR *pstrName);
        
        HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IBxRegKey * This,
            /* [in] */ BSTR strName);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsPredefinedKey )( 
            IBxRegKey * This,
            /* [retval][out] */ VARIANT_BOOL *pValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_PredefinedKeyType )( 
            IBxRegKey * This,
            /* [retval][out] */ BxEnumPredefinedKey *pType);
        
        HRESULT ( STDMETHODCALLTYPE *put_IsVirtual )( 
            IBxRegKey * This,
            /* [in] */ VARIANT_BOOL bVirtual);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsVirtual )( 
            IBxRegKey * This,
            /* [retval][out] */ VARIANT_BOOL *pbVirtual);
        
        HRESULT ( STDMETHODCALLTYPE *put_IsVirtuallyDeleted )( 
            IBxRegKey * This,
            /* [in] */ VARIANT_BOOL bVirtuallyDeleted);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsVirtuallyDeleted )( 
            IBxRegKey * This,
            /* [retval][out] */ VARIANT_BOOL *pbVirtuallyDeleted);
        
        HRESULT ( STDMETHODCALLTYPE *AddKey )( 
            IBxRegKey * This,
            /* [in] */ BSTR strName,
            /* [in] */ VARIANT_BOOL bVirtual,
            /* [retval][out] */ IBxRegKey **ppRegKey);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveKey )( 
            IBxRegKey * This,
            /* [in] */ BSTR strName);
        
        HRESULT ( STDMETHODCALLTYPE *FindKey )( 
            IBxRegKey * This,
            /* [in] */ BSTR strName,
            /* [retval][out] */ IBxRegKey **ppRegKey);
        
        HRESULT ( STDMETHODCALLTYPE *EnumKey )( 
            IBxRegKey * This,
            /* [retval][out] */ IBxEnumRegKey **ppEnumRegKey);
        
        HRESULT ( STDMETHODCALLTYPE *get_KeyCount )( 
            IBxRegKey * This,
            /* [retval][out] */ int *pnCount);
        
        HRESULT ( STDMETHODCALLTYPE *AddValue )( 
            IBxRegKey * This,
            /* [in] */ BSTR strName,
            /* [in] */ VARIANT_BOOL bVirtual,
            /* [in] */ BxEnumRegValueType type,
            /* [retval][out] */ IBxRegValue **ppRegValue);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveValue )( 
            IBxRegKey * This,
            /* [in] */ BSTR strName);
        
        HRESULT ( STDMETHODCALLTYPE *FindValue )( 
            IBxRegKey * This,
            /* [in] */ BSTR strName,
            /* [retval][out] */ IBxRegValue **ppRegValue);
        
        HRESULT ( STDMETHODCALLTYPE *EnumValue )( 
            IBxRegKey * This,
            /* [retval][out] */ IBxEnumRegValue **ppEnumRegValue);
        
        HRESULT ( STDMETHODCALLTYPE *MoveTo )( 
            IBxRegKey * This,
            /* [in] */ IBxRegKey *pNewParentKey,
            /* [in] */ VARIANT_BOOL bOverwriteExisting);
        
        HRESULT ( STDMETHODCALLTYPE *get_ValueCount )( 
            IBxRegKey * This,
            /* [retval][out] */ int *pnCount);
        
        HRESULT ( STDMETHODCALLTYPE *ContainsKey )( 
            IBxRegKey * This,
            /* [retval][out] */ VARIANT_BOOL *pbContains);
        
        HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            IBxRegKey * This,
            /* [retval][out] */ IBxRegKey **ppParentKey);
        
        HRESULT ( STDMETHODCALLTYPE *AddListener )( 
            IBxRegKey * This,
            /* [in] */ IBxRegKeyEvents *pEvents,
            /* [retval][out] */ DWORD *pdwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveListener )( 
            IBxRegKey * This,
            /* [in] */ DWORD dwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *get_FullPath )( 
            IBxRegKey * This,
            /* [retval][out] */ BSTR *pbstrFullPath);
        
        HRESULT ( STDMETHODCALLTYPE *FindKeyByPath )( 
            IBxRegKey * This,
            /* [in] */ BSTR strPath,
            /* [retval][out] */ IBxRegKey **ppRegKey);
        
        HRESULT ( STDMETHODCALLTYPE *get_Id )( 
            IBxRegKey * This,
            /* [retval][out] */ __int64 *pnId);
        
        END_INTERFACE
    } IBxRegKeyVtbl;

    interface IBxRegKey
    {
        CONST_VTBL struct IBxRegKeyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxRegKey_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxRegKey_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxRegKey_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxRegKey_get_Name(This,pstrName)	\
    ( (This)->lpVtbl -> get_Name(This,pstrName) ) 

#define IBxRegKey_put_Name(This,strName)	\
    ( (This)->lpVtbl -> put_Name(This,strName) ) 

#define IBxRegKey_get_IsPredefinedKey(This,pValue)	\
    ( (This)->lpVtbl -> get_IsPredefinedKey(This,pValue) ) 

#define IBxRegKey_get_PredefinedKeyType(This,pType)	\
    ( (This)->lpVtbl -> get_PredefinedKeyType(This,pType) ) 

#define IBxRegKey_put_IsVirtual(This,bVirtual)	\
    ( (This)->lpVtbl -> put_IsVirtual(This,bVirtual) ) 

#define IBxRegKey_get_IsVirtual(This,pbVirtual)	\
    ( (This)->lpVtbl -> get_IsVirtual(This,pbVirtual) ) 

#define IBxRegKey_put_IsVirtuallyDeleted(This,bVirtuallyDeleted)	\
    ( (This)->lpVtbl -> put_IsVirtuallyDeleted(This,bVirtuallyDeleted) ) 

#define IBxRegKey_get_IsVirtuallyDeleted(This,pbVirtuallyDeleted)	\
    ( (This)->lpVtbl -> get_IsVirtuallyDeleted(This,pbVirtuallyDeleted) ) 

#define IBxRegKey_AddKey(This,strName,bVirtual,ppRegKey)	\
    ( (This)->lpVtbl -> AddKey(This,strName,bVirtual,ppRegKey) ) 

#define IBxRegKey_RemoveKey(This,strName)	\
    ( (This)->lpVtbl -> RemoveKey(This,strName) ) 

#define IBxRegKey_FindKey(This,strName,ppRegKey)	\
    ( (This)->lpVtbl -> FindKey(This,strName,ppRegKey) ) 

#define IBxRegKey_EnumKey(This,ppEnumRegKey)	\
    ( (This)->lpVtbl -> EnumKey(This,ppEnumRegKey) ) 

#define IBxRegKey_get_KeyCount(This,pnCount)	\
    ( (This)->lpVtbl -> get_KeyCount(This,pnCount) ) 

#define IBxRegKey_AddValue(This,strName,bVirtual,type,ppRegValue)	\
    ( (This)->lpVtbl -> AddValue(This,strName,bVirtual,type,ppRegValue) ) 

#define IBxRegKey_RemoveValue(This,strName)	\
    ( (This)->lpVtbl -> RemoveValue(This,strName) ) 

#define IBxRegKey_FindValue(This,strName,ppRegValue)	\
    ( (This)->lpVtbl -> FindValue(This,strName,ppRegValue) ) 

#define IBxRegKey_EnumValue(This,ppEnumRegValue)	\
    ( (This)->lpVtbl -> EnumValue(This,ppEnumRegValue) ) 

#define IBxRegKey_MoveTo(This,pNewParentKey,bOverwriteExisting)	\
    ( (This)->lpVtbl -> MoveTo(This,pNewParentKey,bOverwriteExisting) ) 

#define IBxRegKey_get_ValueCount(This,pnCount)	\
    ( (This)->lpVtbl -> get_ValueCount(This,pnCount) ) 

#define IBxRegKey_ContainsKey(This,pbContains)	\
    ( (This)->lpVtbl -> ContainsKey(This,pbContains) ) 

#define IBxRegKey_get_Parent(This,ppParentKey)	\
    ( (This)->lpVtbl -> get_Parent(This,ppParentKey) ) 

#define IBxRegKey_AddListener(This,pEvents,pdwCookie)	\
    ( (This)->lpVtbl -> AddListener(This,pEvents,pdwCookie) ) 

#define IBxRegKey_RemoveListener(This,dwCookie)	\
    ( (This)->lpVtbl -> RemoveListener(This,dwCookie) ) 

#define IBxRegKey_get_FullPath(This,pbstrFullPath)	\
    ( (This)->lpVtbl -> get_FullPath(This,pbstrFullPath) ) 

#define IBxRegKey_FindKeyByPath(This,strPath,ppRegKey)	\
    ( (This)->lpVtbl -> FindKeyByPath(This,strPath,ppRegKey) ) 

#define IBxRegKey_get_Id(This,pnId)	\
    ( (This)->lpVtbl -> get_Id(This,pnId) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxRegKey_INTERFACE_DEFINED__ */


#ifndef __IBxRegistry_INTERFACE_DEFINED__
#define __IBxRegistry_INTERFACE_DEFINED__

/* interface IBxRegistry */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxRegistry;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DEC63B0A-2524-4348-BC28-1453F0EA598F")
    IBxRegistry : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE get_RootKey( 
            /* [in] */ BxEnumRegistryView view,
            /* [retval][out] */ IBxRegKey **ppRootKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_PredefinedKey( 
            /* [in] */ BxEnumPredefinedKey PredefinedKey,
            /* [in] */ BxEnumRegistryView view,
            /* [retval][out] */ IBxRegKey **ppPredefinedKey) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxRegistryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxRegistry * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxRegistry * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxRegistry * This);
        
        HRESULT ( STDMETHODCALLTYPE *get_RootKey )( 
            IBxRegistry * This,
            /* [in] */ BxEnumRegistryView view,
            /* [retval][out] */ IBxRegKey **ppRootKey);
        
        HRESULT ( STDMETHODCALLTYPE *get_PredefinedKey )( 
            IBxRegistry * This,
            /* [in] */ BxEnumPredefinedKey PredefinedKey,
            /* [in] */ BxEnumRegistryView view,
            /* [retval][out] */ IBxRegKey **ppPredefinedKey);
        
        END_INTERFACE
    } IBxRegistryVtbl;

    interface IBxRegistry
    {
        CONST_VTBL struct IBxRegistryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxRegistry_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxRegistry_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxRegistry_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxRegistry_get_RootKey(This,view,ppRootKey)	\
    ( (This)->lpVtbl -> get_RootKey(This,view,ppRootKey) ) 

#define IBxRegistry_get_PredefinedKey(This,PredefinedKey,view,ppPredefinedKey)	\
    ( (This)->lpVtbl -> get_PredefinedKey(This,PredefinedKey,view,ppPredefinedKey) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxRegistry_INTERFACE_DEFINED__ */


#ifndef __IBxRegValue_INTERFACE_DEFINED__
#define __IBxRegValue_INTERFACE_DEFINED__

/* interface IBxRegValue */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxRegValue;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E9E75F27-2AB3-4c13-A531-3090913785B0")
    IBxRegValue : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pstrName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR strName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_IsVirtual( 
            /* [in] */ VARIANT_BOOL bVirtual) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_IsVirtual( 
            /* [retval][out] */ VARIANT_BOOL *pbVirtual) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_IsVirtuallyDeleted( 
            /* [in] */ VARIANT_BOOL bVirtuallyDeleted) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_IsVirtuallyDeleted( 
            /* [retval][out] */ VARIANT_BOOL *pbVirtuallyDeleted) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_UseVariablesInData( 
            /* [in] */ VARIANT_BOOL bUse) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_UseVariablesInData( 
            /* [retval][out] */ VARIANT_BOOL *pbUse) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ IBxRegKey **ppParentKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ BxEnumRegValueType *pType) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_IsValidData( 
            /* [retval][out] */ VARIANT_BOOL *pbValid) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_Text( 
            /* [in] */ BSTR strText) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_Text( 
            /* [retval][out] */ BSTR *pstrText) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_MultiString( 
            /* [in] */ SAFEARRAY * pStrings) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_MultiString( 
            /* [retval][out] */ SAFEARRAY * *ppStrings) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_Data( 
            /* [in] */ SAFEARRAY * pData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_Data( 
            /* [retval][out] */ SAFEARRAY * *ppData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_DataLength( 
            /* [retval][out] */ int *pnLength) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_DWORD( 
            /* [in] */ DWORD nValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_DWORD( 
            /* [retval][out] */ DWORD *pnValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_QWORD( 
            /* [in] */ DWORD64 nValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_QWORD( 
            /* [retval][out] */ DWORD64 *pnValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddListener( 
            /* [in] */ IBxRegValueEvents *pEvents,
            /* [retval][out] */ DWORD *pdwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveListener( 
            /* [in] */ DWORD dwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveTo( 
            /* [in] */ IBxRegKey *pNewParentKey,
            /* [in] */ VARIANT_BOOL bOverwriteExisting) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_Id( 
            /* [retval][out] */ __int64 *pnId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE put_RawData( 
            /* [in] */ const void *pData,
            /* [in] */ int nLength) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxRegValueVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxRegValue * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxRegValue * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxRegValue * This);
        
        HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IBxRegValue * This,
            /* [retval][out] */ BSTR *pstrName);
        
        HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IBxRegValue * This,
            /* [in] */ BSTR strName);
        
        HRESULT ( STDMETHODCALLTYPE *put_IsVirtual )( 
            IBxRegValue * This,
            /* [in] */ VARIANT_BOOL bVirtual);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsVirtual )( 
            IBxRegValue * This,
            /* [retval][out] */ VARIANT_BOOL *pbVirtual);
        
        HRESULT ( STDMETHODCALLTYPE *put_IsVirtuallyDeleted )( 
            IBxRegValue * This,
            /* [in] */ VARIANT_BOOL bVirtuallyDeleted);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsVirtuallyDeleted )( 
            IBxRegValue * This,
            /* [retval][out] */ VARIANT_BOOL *pbVirtuallyDeleted);
        
        HRESULT ( STDMETHODCALLTYPE *put_UseVariablesInData )( 
            IBxRegValue * This,
            /* [in] */ VARIANT_BOOL bUse);
        
        HRESULT ( STDMETHODCALLTYPE *get_UseVariablesInData )( 
            IBxRegValue * This,
            /* [retval][out] */ VARIANT_BOOL *pbUse);
        
        HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            IBxRegValue * This,
            /* [retval][out] */ IBxRegKey **ppParentKey);
        
        HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            IBxRegValue * This,
            /* [retval][out] */ BxEnumRegValueType *pType);
        
        HRESULT ( STDMETHODCALLTYPE *get_IsValidData )( 
            IBxRegValue * This,
            /* [retval][out] */ VARIANT_BOOL *pbValid);
        
        HRESULT ( STDMETHODCALLTYPE *put_Text )( 
            IBxRegValue * This,
            /* [in] */ BSTR strText);
        
        HRESULT ( STDMETHODCALLTYPE *get_Text )( 
            IBxRegValue * This,
            /* [retval][out] */ BSTR *pstrText);
        
        HRESULT ( STDMETHODCALLTYPE *put_MultiString )( 
            IBxRegValue * This,
            /* [in] */ SAFEARRAY * pStrings);
        
        HRESULT ( STDMETHODCALLTYPE *get_MultiString )( 
            IBxRegValue * This,
            /* [retval][out] */ SAFEARRAY * *ppStrings);
        
        HRESULT ( STDMETHODCALLTYPE *put_Data )( 
            IBxRegValue * This,
            /* [in] */ SAFEARRAY * pData);
        
        HRESULT ( STDMETHODCALLTYPE *get_Data )( 
            IBxRegValue * This,
            /* [retval][out] */ SAFEARRAY * *ppData);
        
        HRESULT ( STDMETHODCALLTYPE *get_DataLength )( 
            IBxRegValue * This,
            /* [retval][out] */ int *pnLength);
        
        HRESULT ( STDMETHODCALLTYPE *put_DWORD )( 
            IBxRegValue * This,
            /* [in] */ DWORD nValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_DWORD )( 
            IBxRegValue * This,
            /* [retval][out] */ DWORD *pnValue);
        
        HRESULT ( STDMETHODCALLTYPE *put_QWORD )( 
            IBxRegValue * This,
            /* [in] */ DWORD64 nValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_QWORD )( 
            IBxRegValue * This,
            /* [retval][out] */ DWORD64 *pnValue);
        
        HRESULT ( STDMETHODCALLTYPE *AddListener )( 
            IBxRegValue * This,
            /* [in] */ IBxRegValueEvents *pEvents,
            /* [retval][out] */ DWORD *pdwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveListener )( 
            IBxRegValue * This,
            /* [in] */ DWORD dwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *MoveTo )( 
            IBxRegValue * This,
            /* [in] */ IBxRegKey *pNewParentKey,
            /* [in] */ VARIANT_BOOL bOverwriteExisting);
        
        HRESULT ( STDMETHODCALLTYPE *get_Id )( 
            IBxRegValue * This,
            /* [retval][out] */ __int64 *pnId);
        
        HRESULT ( STDMETHODCALLTYPE *put_RawData )( 
            IBxRegValue * This,
            /* [in] */ const void *pData,
            /* [in] */ int nLength);
        
        END_INTERFACE
    } IBxRegValueVtbl;

    interface IBxRegValue
    {
        CONST_VTBL struct IBxRegValueVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxRegValue_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxRegValue_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxRegValue_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxRegValue_get_Name(This,pstrName)	\
    ( (This)->lpVtbl -> get_Name(This,pstrName) ) 

#define IBxRegValue_put_Name(This,strName)	\
    ( (This)->lpVtbl -> put_Name(This,strName) ) 

#define IBxRegValue_put_IsVirtual(This,bVirtual)	\
    ( (This)->lpVtbl -> put_IsVirtual(This,bVirtual) ) 

#define IBxRegValue_get_IsVirtual(This,pbVirtual)	\
    ( (This)->lpVtbl -> get_IsVirtual(This,pbVirtual) ) 

#define IBxRegValue_put_IsVirtuallyDeleted(This,bVirtuallyDeleted)	\
    ( (This)->lpVtbl -> put_IsVirtuallyDeleted(This,bVirtuallyDeleted) ) 

#define IBxRegValue_get_IsVirtuallyDeleted(This,pbVirtuallyDeleted)	\
    ( (This)->lpVtbl -> get_IsVirtuallyDeleted(This,pbVirtuallyDeleted) ) 

#define IBxRegValue_put_UseVariablesInData(This,bUse)	\
    ( (This)->lpVtbl -> put_UseVariablesInData(This,bUse) ) 

#define IBxRegValue_get_UseVariablesInData(This,pbUse)	\
    ( (This)->lpVtbl -> get_UseVariablesInData(This,pbUse) ) 

#define IBxRegValue_get_Parent(This,ppParentKey)	\
    ( (This)->lpVtbl -> get_Parent(This,ppParentKey) ) 

#define IBxRegValue_get_Type(This,pType)	\
    ( (This)->lpVtbl -> get_Type(This,pType) ) 

#define IBxRegValue_get_IsValidData(This,pbValid)	\
    ( (This)->lpVtbl -> get_IsValidData(This,pbValid) ) 

#define IBxRegValue_put_Text(This,strText)	\
    ( (This)->lpVtbl -> put_Text(This,strText) ) 

#define IBxRegValue_get_Text(This,pstrText)	\
    ( (This)->lpVtbl -> get_Text(This,pstrText) ) 

#define IBxRegValue_put_MultiString(This,pStrings)	\
    ( (This)->lpVtbl -> put_MultiString(This,pStrings) ) 

#define IBxRegValue_get_MultiString(This,ppStrings)	\
    ( (This)->lpVtbl -> get_MultiString(This,ppStrings) ) 

#define IBxRegValue_put_Data(This,pData)	\
    ( (This)->lpVtbl -> put_Data(This,pData) ) 

#define IBxRegValue_get_Data(This,ppData)	\
    ( (This)->lpVtbl -> get_Data(This,ppData) ) 

#define IBxRegValue_get_DataLength(This,pnLength)	\
    ( (This)->lpVtbl -> get_DataLength(This,pnLength) ) 

#define IBxRegValue_put_DWORD(This,nValue)	\
    ( (This)->lpVtbl -> put_DWORD(This,nValue) ) 

#define IBxRegValue_get_DWORD(This,pnValue)	\
    ( (This)->lpVtbl -> get_DWORD(This,pnValue) ) 

#define IBxRegValue_put_QWORD(This,nValue)	\
    ( (This)->lpVtbl -> put_QWORD(This,nValue) ) 

#define IBxRegValue_get_QWORD(This,pnValue)	\
    ( (This)->lpVtbl -> get_QWORD(This,pnValue) ) 

#define IBxRegValue_AddListener(This,pEvents,pdwCookie)	\
    ( (This)->lpVtbl -> AddListener(This,pEvents,pdwCookie) ) 

#define IBxRegValue_RemoveListener(This,dwCookie)	\
    ( (This)->lpVtbl -> RemoveListener(This,dwCookie) ) 

#define IBxRegValue_MoveTo(This,pNewParentKey,bOverwriteExisting)	\
    ( (This)->lpVtbl -> MoveTo(This,pNewParentKey,bOverwriteExisting) ) 

#define IBxRegValue_get_Id(This,pnId)	\
    ( (This)->lpVtbl -> get_Id(This,pnId) ) 

#define IBxRegValue_put_RawData(This,pData,nLength)	\
    ( (This)->lpVtbl -> put_RawData(This,pData,nLength) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxRegValue_INTERFACE_DEFINED__ */


#ifndef __IBxRegKeyEvents_INTERFACE_DEFINED__
#define __IBxRegKeyEvents_INTERFACE_DEFINED__

/* interface IBxRegKeyEvents */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxRegKeyEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FC99436E-7E1C-4fec-ABC5-4217F9676569")
    IBxRegKeyEvents : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnSubscribed( 
            IBxRegKey *pKey,
            DWORD dwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnUnsubscribed( 
            IBxRegKey *pKey,
            DWORD dwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnPropChanged( 
            IBxRegKey *pKey,
            BxEnumRegKeyProp propid) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSubKeyAdded( 
            IBxRegKey *pKey,
            IBxRegKey *pAddedSubKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSubKeyRemoved( 
            IBxRegKey *pKey,
            IBxRegKey *pRemovedSubKey) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnValueAdded( 
            IBxRegKey *pKey,
            IBxRegValue *pValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnValueRemoved( 
            IBxRegKey *pKey,
            IBxRegValue *pValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnRemoved( 
            IBxRegKey *pKey) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxRegKeyEventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxRegKeyEvents * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxRegKeyEvents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxRegKeyEvents * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnSubscribed )( 
            IBxRegKeyEvents * This,
            IBxRegKey *pKey,
            DWORD dwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *OnUnsubscribed )( 
            IBxRegKeyEvents * This,
            IBxRegKey *pKey,
            DWORD dwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *OnPropChanged )( 
            IBxRegKeyEvents * This,
            IBxRegKey *pKey,
            BxEnumRegKeyProp propid);
        
        HRESULT ( STDMETHODCALLTYPE *OnSubKeyAdded )( 
            IBxRegKeyEvents * This,
            IBxRegKey *pKey,
            IBxRegKey *pAddedSubKey);
        
        HRESULT ( STDMETHODCALLTYPE *OnSubKeyRemoved )( 
            IBxRegKeyEvents * This,
            IBxRegKey *pKey,
            IBxRegKey *pRemovedSubKey);
        
        HRESULT ( STDMETHODCALLTYPE *OnValueAdded )( 
            IBxRegKeyEvents * This,
            IBxRegKey *pKey,
            IBxRegValue *pValue);
        
        HRESULT ( STDMETHODCALLTYPE *OnValueRemoved )( 
            IBxRegKeyEvents * This,
            IBxRegKey *pKey,
            IBxRegValue *pValue);
        
        HRESULT ( STDMETHODCALLTYPE *OnRemoved )( 
            IBxRegKeyEvents * This,
            IBxRegKey *pKey);
        
        END_INTERFACE
    } IBxRegKeyEventsVtbl;

    interface IBxRegKeyEvents
    {
        CONST_VTBL struct IBxRegKeyEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxRegKeyEvents_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxRegKeyEvents_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxRegKeyEvents_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxRegKeyEvents_OnSubscribed(This,pKey,dwCookie)	\
    ( (This)->lpVtbl -> OnSubscribed(This,pKey,dwCookie) ) 

#define IBxRegKeyEvents_OnUnsubscribed(This,pKey,dwCookie)	\
    ( (This)->lpVtbl -> OnUnsubscribed(This,pKey,dwCookie) ) 

#define IBxRegKeyEvents_OnPropChanged(This,pKey,propid)	\
    ( (This)->lpVtbl -> OnPropChanged(This,pKey,propid) ) 

#define IBxRegKeyEvents_OnSubKeyAdded(This,pKey,pAddedSubKey)	\
    ( (This)->lpVtbl -> OnSubKeyAdded(This,pKey,pAddedSubKey) ) 

#define IBxRegKeyEvents_OnSubKeyRemoved(This,pKey,pRemovedSubKey)	\
    ( (This)->lpVtbl -> OnSubKeyRemoved(This,pKey,pRemovedSubKey) ) 

#define IBxRegKeyEvents_OnValueAdded(This,pKey,pValue)	\
    ( (This)->lpVtbl -> OnValueAdded(This,pKey,pValue) ) 

#define IBxRegKeyEvents_OnValueRemoved(This,pKey,pValue)	\
    ( (This)->lpVtbl -> OnValueRemoved(This,pKey,pValue) ) 

#define IBxRegKeyEvents_OnRemoved(This,pKey)	\
    ( (This)->lpVtbl -> OnRemoved(This,pKey) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxRegKeyEvents_INTERFACE_DEFINED__ */


#ifndef __IBxRegValueEvents_INTERFACE_DEFINED__
#define __IBxRegValueEvents_INTERFACE_DEFINED__

/* interface IBxRegValueEvents */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxRegValueEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D99F6003-AB98-4214-AA74-AB85844B1B4D")
    IBxRegValueEvents : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnSubscribed( 
            IBxRegValue *pValue,
            DWORD dwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnUnsubscribed( 
            IBxRegValue *pValue,
            DWORD dwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnPropChanged( 
            IBxRegValue *pValue,
            BxEnumRegValueProp propid) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnRemoved( 
            IBxRegValue *pValue) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxRegValueEventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxRegValueEvents * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxRegValueEvents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxRegValueEvents * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnSubscribed )( 
            IBxRegValueEvents * This,
            IBxRegValue *pValue,
            DWORD dwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *OnUnsubscribed )( 
            IBxRegValueEvents * This,
            IBxRegValue *pValue,
            DWORD dwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *OnPropChanged )( 
            IBxRegValueEvents * This,
            IBxRegValue *pValue,
            BxEnumRegValueProp propid);
        
        HRESULT ( STDMETHODCALLTYPE *OnRemoved )( 
            IBxRegValueEvents * This,
            IBxRegValue *pValue);
        
        END_INTERFACE
    } IBxRegValueEventsVtbl;

    interface IBxRegValueEvents
    {
        CONST_VTBL struct IBxRegValueEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxRegValueEvents_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxRegValueEvents_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxRegValueEvents_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxRegValueEvents_OnSubscribed(This,pValue,dwCookie)	\
    ( (This)->lpVtbl -> OnSubscribed(This,pValue,dwCookie) ) 

#define IBxRegValueEvents_OnUnsubscribed(This,pValue,dwCookie)	\
    ( (This)->lpVtbl -> OnUnsubscribed(This,pValue,dwCookie) ) 

#define IBxRegValueEvents_OnPropChanged(This,pValue,propid)	\
    ( (This)->lpVtbl -> OnPropChanged(This,pValue,propid) ) 

#define IBxRegValueEvents_OnRemoved(This,pValue)	\
    ( (This)->lpVtbl -> OnRemoved(This,pValue) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxRegValueEvents_INTERFACE_DEFINED__ */


#ifndef __IBxEnumRegKey_INTERFACE_DEFINED__
#define __IBxEnumRegKey_INTERFACE_DEFINED__

/* interface IBxEnumRegKey */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxEnumRegKey;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E429ABBE-04EE-49f2-8606-74F4B7195F94")
    IBxEnumRegKey : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Next( 
            /* [in] */ ULONG nRequestedCount,
            /* [out] */ IBxRegKey **ppKeys,
            /* [out] */ ULONG *pnFetchedCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Skip( 
            /* [in] */ ULONG nCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Clone( 
            /* [out] */ IBxEnumRegKey **ppEnum) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE NextAsArray( 
            /* [in] */ ULONG nRequestedCount,
            /* [out] */ SAFEARRAY * *ppKeys) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddPropSortOrder( 
            /* [in] */ BxEnumRegKeyProp prop,
            /* [in] */ BxEnumSortOrder order) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxEnumRegKeyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxEnumRegKey * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxEnumRegKey * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxEnumRegKey * This);
        
        HRESULT ( STDMETHODCALLTYPE *Next )( 
            IBxEnumRegKey * This,
            /* [in] */ ULONG nRequestedCount,
            /* [out] */ IBxRegKey **ppKeys,
            /* [out] */ ULONG *pnFetchedCount);
        
        HRESULT ( STDMETHODCALLTYPE *Skip )( 
            IBxEnumRegKey * This,
            /* [in] */ ULONG nCount);
        
        HRESULT ( STDMETHODCALLTYPE *Reset )( 
            IBxEnumRegKey * This);
        
        HRESULT ( STDMETHODCALLTYPE *Clone )( 
            IBxEnumRegKey * This,
            /* [out] */ IBxEnumRegKey **ppEnum);
        
        HRESULT ( STDMETHODCALLTYPE *NextAsArray )( 
            IBxEnumRegKey * This,
            /* [in] */ ULONG nRequestedCount,
            /* [out] */ SAFEARRAY * *ppKeys);
        
        HRESULT ( STDMETHODCALLTYPE *AddPropSortOrder )( 
            IBxEnumRegKey * This,
            /* [in] */ BxEnumRegKeyProp prop,
            /* [in] */ BxEnumSortOrder order);
        
        END_INTERFACE
    } IBxEnumRegKeyVtbl;

    interface IBxEnumRegKey
    {
        CONST_VTBL struct IBxEnumRegKeyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxEnumRegKey_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxEnumRegKey_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxEnumRegKey_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxEnumRegKey_Next(This,nRequestedCount,ppKeys,pnFetchedCount)	\
    ( (This)->lpVtbl -> Next(This,nRequestedCount,ppKeys,pnFetchedCount) ) 

#define IBxEnumRegKey_Skip(This,nCount)	\
    ( (This)->lpVtbl -> Skip(This,nCount) ) 

#define IBxEnumRegKey_Reset(This)	\
    ( (This)->lpVtbl -> Reset(This) ) 

#define IBxEnumRegKey_Clone(This,ppEnum)	\
    ( (This)->lpVtbl -> Clone(This,ppEnum) ) 

#define IBxEnumRegKey_NextAsArray(This,nRequestedCount,ppKeys)	\
    ( (This)->lpVtbl -> NextAsArray(This,nRequestedCount,ppKeys) ) 

#define IBxEnumRegKey_AddPropSortOrder(This,prop,order)	\
    ( (This)->lpVtbl -> AddPropSortOrder(This,prop,order) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxEnumRegKey_INTERFACE_DEFINED__ */


#ifndef __IBxEnumRegValue_INTERFACE_DEFINED__
#define __IBxEnumRegValue_INTERFACE_DEFINED__

/* interface IBxEnumRegValue */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxEnumRegValue;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("873ECBD8-1999-4c44-AE1D-C1885EA47F02")
    IBxEnumRegValue : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Next( 
            /* [in] */ ULONG nRequestedCount,
            /* [out] */ IBxRegValue **ppValues,
            /* [out] */ ULONG *pnFetchedCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Skip( 
            /* [in] */ ULONG nCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Clone( 
            /* [out] */ IBxEnumRegValue **ppEnum) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE NextAsArray( 
            /* [in] */ ULONG nRequestedCount,
            /* [out] */ SAFEARRAY * *ppValues) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddPropSortOrder( 
            /* [in] */ BxEnumRegValueProp prop,
            /* [in] */ BxEnumSortOrder order) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxEnumRegValueVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxEnumRegValue * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxEnumRegValue * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxEnumRegValue * This);
        
        HRESULT ( STDMETHODCALLTYPE *Next )( 
            IBxEnumRegValue * This,
            /* [in] */ ULONG nRequestedCount,
            /* [out] */ IBxRegValue **ppValues,
            /* [out] */ ULONG *pnFetchedCount);
        
        HRESULT ( STDMETHODCALLTYPE *Skip )( 
            IBxEnumRegValue * This,
            /* [in] */ ULONG nCount);
        
        HRESULT ( STDMETHODCALLTYPE *Reset )( 
            IBxEnumRegValue * This);
        
        HRESULT ( STDMETHODCALLTYPE *Clone )( 
            IBxEnumRegValue * This,
            /* [out] */ IBxEnumRegValue **ppEnum);
        
        HRESULT ( STDMETHODCALLTYPE *NextAsArray )( 
            IBxEnumRegValue * This,
            /* [in] */ ULONG nRequestedCount,
            /* [out] */ SAFEARRAY * *ppValues);
        
        HRESULT ( STDMETHODCALLTYPE *AddPropSortOrder )( 
            IBxEnumRegValue * This,
            /* [in] */ BxEnumRegValueProp prop,
            /* [in] */ BxEnumSortOrder order);
        
        END_INTERFACE
    } IBxEnumRegValueVtbl;

    interface IBxEnumRegValue
    {
        CONST_VTBL struct IBxEnumRegValueVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxEnumRegValue_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxEnumRegValue_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxEnumRegValue_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxEnumRegValue_Next(This,nRequestedCount,ppValues,pnFetchedCount)	\
    ( (This)->lpVtbl -> Next(This,nRequestedCount,ppValues,pnFetchedCount) ) 

#define IBxEnumRegValue_Skip(This,nCount)	\
    ( (This)->lpVtbl -> Skip(This,nCount) ) 

#define IBxEnumRegValue_Reset(This)	\
    ( (This)->lpVtbl -> Reset(This) ) 

#define IBxEnumRegValue_Clone(This,ppEnum)	\
    ( (This)->lpVtbl -> Clone(This,ppEnum) ) 

#define IBxEnumRegValue_NextAsArray(This,nRequestedCount,ppValues)	\
    ( (This)->lpVtbl -> NextAsArray(This,nRequestedCount,ppValues) ) 

#define IBxEnumRegValue_AddPropSortOrder(This,prop,order)	\
    ( (This)->lpVtbl -> AddPropSortOrder(This,prop,order) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxEnumRegValue_INTERFACE_DEFINED__ */


#ifndef __IBxProjectEvents_INTERFACE_DEFINED__
#define __IBxProjectEvents_INTERFACE_DEFINED__

/* interface IBxProjectEvents */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxProjectEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("281235BB-8E52-4838-A28D-093787A968C1")
    IBxProjectEvents : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnSubscribed( 
            IBxProject *pProject,
            DWORD dwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnUnsubscribed( 
            IBxProject *pProject,
            DWORD dwCookie) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnPropChanged( 
            IBxProject *pProject,
            BxEnumProjectProp propid) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxProjectEventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxProjectEvents * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxProjectEvents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxProjectEvents * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnSubscribed )( 
            IBxProjectEvents * This,
            IBxProject *pProject,
            DWORD dwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *OnUnsubscribed )( 
            IBxProjectEvents * This,
            IBxProject *pProject,
            DWORD dwCookie);
        
        HRESULT ( STDMETHODCALLTYPE *OnPropChanged )( 
            IBxProjectEvents * This,
            IBxProject *pProject,
            BxEnumProjectProp propid);
        
        END_INTERFACE
    } IBxProjectEventsVtbl;

    interface IBxProjectEvents
    {
        CONST_VTBL struct IBxProjectEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxProjectEvents_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxProjectEvents_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxProjectEvents_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxProjectEvents_OnSubscribed(This,pProject,dwCookie)	\
    ( (This)->lpVtbl -> OnSubscribed(This,pProject,dwCookie) ) 

#define IBxProjectEvents_OnUnsubscribed(This,pProject,dwCookie)	\
    ( (This)->lpVtbl -> OnUnsubscribed(This,pProject,dwCookie) ) 

#define IBxProjectEvents_OnPropChanged(This,pProject,propid)	\
    ( (This)->lpVtbl -> OnPropChanged(This,pProject,propid) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxProjectEvents_INTERFACE_DEFINED__ */


#ifndef __IBxSnapshotManager_INTERFACE_DEFINED__
#define __IBxSnapshotManager_INTERFACE_DEFINED__

/* interface IBxSnapshotManager */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxSnapshotManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7355EFC9-7758-49e6-8BCB-412B0929CC77")
    IBxSnapshotManager : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE MakeSnapshotAsync( 
            /* [in] */ BSTR strPath,
            /* [in] */ DWORD dwOptions,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MakeSnapshot( 
            /* [in] */ BSTR strPath,
            /* [in] */ DWORD dwOptions) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveSnapshotsDiffToProjectAsync( 
            /* [in] */ BSTR strPreSnapshotPath,
            /* [in] */ BSTR strPostSnapshotPath,
            /* [in] */ IBxProject *pProject,
            /* [in] */ BSTR strSourceFilesBaseDirectory,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveSnapshotsDiffToProject( 
            /* [in] */ BSTR strPreSnapshotPath,
            /* [in] */ BSTR strPostSnapshotPath,
            /* [in] */ IBxProject *pProject,
            /* [in] */ BSTR strSourceFilesBaseDirectory) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxSnapshotManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxSnapshotManager * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxSnapshotManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxSnapshotManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *MakeSnapshotAsync )( 
            IBxSnapshotManager * This,
            /* [in] */ BSTR strPath,
            /* [in] */ DWORD dwOptions,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        HRESULT ( STDMETHODCALLTYPE *MakeSnapshot )( 
            IBxSnapshotManager * This,
            /* [in] */ BSTR strPath,
            /* [in] */ DWORD dwOptions);
        
        HRESULT ( STDMETHODCALLTYPE *SaveSnapshotsDiffToProjectAsync )( 
            IBxSnapshotManager * This,
            /* [in] */ BSTR strPreSnapshotPath,
            /* [in] */ BSTR strPostSnapshotPath,
            /* [in] */ IBxProject *pProject,
            /* [in] */ BSTR strSourceFilesBaseDirectory,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        HRESULT ( STDMETHODCALLTYPE *SaveSnapshotsDiffToProject )( 
            IBxSnapshotManager * This,
            /* [in] */ BSTR strPreSnapshotPath,
            /* [in] */ BSTR strPostSnapshotPath,
            /* [in] */ IBxProject *pProject,
            /* [in] */ BSTR strSourceFilesBaseDirectory);
        
        END_INTERFACE
    } IBxSnapshotManagerVtbl;

    interface IBxSnapshotManager
    {
        CONST_VTBL struct IBxSnapshotManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxSnapshotManager_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxSnapshotManager_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxSnapshotManager_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxSnapshotManager_MakeSnapshotAsync(This,strPath,dwOptions,pProgress,ppControl)	\
    ( (This)->lpVtbl -> MakeSnapshotAsync(This,strPath,dwOptions,pProgress,ppControl) ) 

#define IBxSnapshotManager_MakeSnapshot(This,strPath,dwOptions)	\
    ( (This)->lpVtbl -> MakeSnapshot(This,strPath,dwOptions) ) 

#define IBxSnapshotManager_SaveSnapshotsDiffToProjectAsync(This,strPreSnapshotPath,strPostSnapshotPath,pProject,strSourceFilesBaseDirectory,pProgress,ppControl)	\
    ( (This)->lpVtbl -> SaveSnapshotsDiffToProjectAsync(This,strPreSnapshotPath,strPostSnapshotPath,pProject,strSourceFilesBaseDirectory,pProgress,ppControl) ) 

#define IBxSnapshotManager_SaveSnapshotsDiffToProject(This,strPreSnapshotPath,strPostSnapshotPath,pProject,strSourceFilesBaseDirectory)	\
    ( (This)->lpVtbl -> SaveSnapshotsDiffToProject(This,strPreSnapshotPath,strPostSnapshotPath,pProject,strSourceFilesBaseDirectory) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxSnapshotManager_INTERFACE_DEFINED__ */


#ifndef __IBxPredefinedDirectoriesInfoProvider_INTERFACE_DEFINED__
#define __IBxPredefinedDirectoriesInfoProvider_INTERFACE_DEFINED__

/* interface IBxPredefinedDirectoriesInfoProvider */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxPredefinedDirectoriesInfoProvider;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("58A8A730-EA69-4639-BFA3-B04F5A12AD94")
    IBxPredefinedDirectoriesInfoProvider : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetPredefinedDirectoryName( 
            /* [in] */ BxEnumPredefinedDirectory dir_id,
            /* [retval][out] */ BSTR *pbstrName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetPredefinedDirectoryId( 
            /* [in] */ BSTR bstrName,
            /* [retval][out] */ BxEnumPredefinedDirectory *pId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetPredefinedDirectoryPathById( 
            /* [in] */ BxEnumPredefinedDirectory dir_id,
            /* [retval][out] */ BSTR *pbstrPath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetPredefinedDirectoryPathByName( 
            /* [in] */ BSTR bstrName,
            /* [retval][out] */ BSTR *pbstrPath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetPathVariabledForm( 
            /* [in] */ BSTR bstrPath,
            /* [retval][out] */ BSTR *pbstrVariabledForm) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetPathVariabledFormEx( 
            /* [in] */ BSTR bstrPath,
            /* [in] */ WCHAR chLeftBracket,
            /* [in] */ WCHAR chRightBracket,
            /* [retval][out] */ BSTR *pbstrVariabledForm) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ParsePath( 
            /* [in] */ BSTR bstrPath,
            /* [out] */ BSTR *bstrPredefinedDirectoryName,
            /* [out] */ BSTR *pbstrRelativePath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetVariabledForm( 
            /* [in] */ BSTR str,
            /* [retval][out] */ BSTR *pbstrVariabledForm) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxPredefinedDirectoriesInfoProviderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxPredefinedDirectoriesInfoProvider * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxPredefinedDirectoriesInfoProvider * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxPredefinedDirectoriesInfoProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetPredefinedDirectoryName )( 
            IBxPredefinedDirectoriesInfoProvider * This,
            /* [in] */ BxEnumPredefinedDirectory dir_id,
            /* [retval][out] */ BSTR *pbstrName);
        
        HRESULT ( STDMETHODCALLTYPE *GetPredefinedDirectoryId )( 
            IBxPredefinedDirectoriesInfoProvider * This,
            /* [in] */ BSTR bstrName,
            /* [retval][out] */ BxEnumPredefinedDirectory *pId);
        
        HRESULT ( STDMETHODCALLTYPE *GetPredefinedDirectoryPathById )( 
            IBxPredefinedDirectoriesInfoProvider * This,
            /* [in] */ BxEnumPredefinedDirectory dir_id,
            /* [retval][out] */ BSTR *pbstrPath);
        
        HRESULT ( STDMETHODCALLTYPE *GetPredefinedDirectoryPathByName )( 
            IBxPredefinedDirectoriesInfoProvider * This,
            /* [in] */ BSTR bstrName,
            /* [retval][out] */ BSTR *pbstrPath);
        
        HRESULT ( STDMETHODCALLTYPE *GetPathVariabledForm )( 
            IBxPredefinedDirectoriesInfoProvider * This,
            /* [in] */ BSTR bstrPath,
            /* [retval][out] */ BSTR *pbstrVariabledForm);
        
        HRESULT ( STDMETHODCALLTYPE *GetPathVariabledFormEx )( 
            IBxPredefinedDirectoriesInfoProvider * This,
            /* [in] */ BSTR bstrPath,
            /* [in] */ WCHAR chLeftBracket,
            /* [in] */ WCHAR chRightBracket,
            /* [retval][out] */ BSTR *pbstrVariabledForm);
        
        HRESULT ( STDMETHODCALLTYPE *ParsePath )( 
            IBxPredefinedDirectoriesInfoProvider * This,
            /* [in] */ BSTR bstrPath,
            /* [out] */ BSTR *bstrPredefinedDirectoryName,
            /* [out] */ BSTR *pbstrRelativePath);
        
        HRESULT ( STDMETHODCALLTYPE *GetVariabledForm )( 
            IBxPredefinedDirectoriesInfoProvider * This,
            /* [in] */ BSTR str,
            /* [retval][out] */ BSTR *pbstrVariabledForm);
        
        END_INTERFACE
    } IBxPredefinedDirectoriesInfoProviderVtbl;

    interface IBxPredefinedDirectoriesInfoProvider
    {
        CONST_VTBL struct IBxPredefinedDirectoriesInfoProviderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxPredefinedDirectoriesInfoProvider_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxPredefinedDirectoriesInfoProvider_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxPredefinedDirectoriesInfoProvider_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxPredefinedDirectoriesInfoProvider_GetPredefinedDirectoryName(This,dir_id,pbstrName)	\
    ( (This)->lpVtbl -> GetPredefinedDirectoryName(This,dir_id,pbstrName) ) 

#define IBxPredefinedDirectoriesInfoProvider_GetPredefinedDirectoryId(This,bstrName,pId)	\
    ( (This)->lpVtbl -> GetPredefinedDirectoryId(This,bstrName,pId) ) 

#define IBxPredefinedDirectoriesInfoProvider_GetPredefinedDirectoryPathById(This,dir_id,pbstrPath)	\
    ( (This)->lpVtbl -> GetPredefinedDirectoryPathById(This,dir_id,pbstrPath) ) 

#define IBxPredefinedDirectoriesInfoProvider_GetPredefinedDirectoryPathByName(This,bstrName,pbstrPath)	\
    ( (This)->lpVtbl -> GetPredefinedDirectoryPathByName(This,bstrName,pbstrPath) ) 

#define IBxPredefinedDirectoriesInfoProvider_GetPathVariabledForm(This,bstrPath,pbstrVariabledForm)	\
    ( (This)->lpVtbl -> GetPathVariabledForm(This,bstrPath,pbstrVariabledForm) ) 

#define IBxPredefinedDirectoriesInfoProvider_GetPathVariabledFormEx(This,bstrPath,chLeftBracket,chRightBracket,pbstrVariabledForm)	\
    ( (This)->lpVtbl -> GetPathVariabledFormEx(This,bstrPath,chLeftBracket,chRightBracket,pbstrVariabledForm) ) 

#define IBxPredefinedDirectoriesInfoProvider_ParsePath(This,bstrPath,bstrPredefinedDirectoryName,pbstrRelativePath)	\
    ( (This)->lpVtbl -> ParsePath(This,bstrPath,bstrPredefinedDirectoryName,pbstrRelativePath) ) 

#define IBxPredefinedDirectoriesInfoProvider_GetVariabledForm(This,str,pbstrVariabledForm)	\
    ( (This)->lpVtbl -> GetVariabledForm(This,str,pbstrVariabledForm) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxPredefinedDirectoriesInfoProvider_INTERFACE_DEFINED__ */


#ifndef __IBxImportRegFileService_INTERFACE_DEFINED__
#define __IBxImportRegFileService_INTERFACE_DEFINED__

/* interface IBxImportRegFileService */
/* [object][uuid] */ 


EXTERN_C const IID IID_IBxImportRegFileService;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D6DF8DBB-81DA-4318-AA27-4C2F856B4D3B")
    IBxImportRegFileService : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE put_UseVariabledForm( 
            /* [in] */ VARIANT_BOOL newValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE get_UseVariabledForm( 
            /* [retval][out] */ VARIANT_BOOL *pValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ImportFile( 
            /* [in] */ IBxRegistry *pRegistry,
            /* [in] */ BxEnumRegistryView RegistryView,
            /* [in] */ BSTR strRegFilePath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ImportFileAsync( 
            /* [in] */ IBxRegistry *pRegistry,
            /* [in] */ BxEnumRegistryView RegistryView,
            /* [in] */ BSTR strRegFilePath,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ImportText( 
            /* [in] */ IBxRegistry *pRegistry,
            /* [in] */ BxEnumRegistryView RegistryView,
            /* [in] */ BSTR regFileContent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ImportTextAsync( 
            /* [in] */ IBxRegistry *pRegistry,
            /* [in] */ BxEnumRegistryView RegistryView,
            /* [in] */ BSTR regFileContent,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IBxImportRegFileServiceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBxImportRegFileService * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBxImportRegFileService * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBxImportRegFileService * This);
        
        HRESULT ( STDMETHODCALLTYPE *put_UseVariabledForm )( 
            IBxImportRegFileService * This,
            /* [in] */ VARIANT_BOOL newValue);
        
        HRESULT ( STDMETHODCALLTYPE *get_UseVariabledForm )( 
            IBxImportRegFileService * This,
            /* [retval][out] */ VARIANT_BOOL *pValue);
        
        HRESULT ( STDMETHODCALLTYPE *ImportFile )( 
            IBxImportRegFileService * This,
            /* [in] */ IBxRegistry *pRegistry,
            /* [in] */ BxEnumRegistryView RegistryView,
            /* [in] */ BSTR strRegFilePath);
        
        HRESULT ( STDMETHODCALLTYPE *ImportFileAsync )( 
            IBxImportRegFileService * This,
            /* [in] */ IBxRegistry *pRegistry,
            /* [in] */ BxEnumRegistryView RegistryView,
            /* [in] */ BSTR strRegFilePath,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        HRESULT ( STDMETHODCALLTYPE *ImportText )( 
            IBxImportRegFileService * This,
            /* [in] */ IBxRegistry *pRegistry,
            /* [in] */ BxEnumRegistryView RegistryView,
            /* [in] */ BSTR regFileContent);
        
        HRESULT ( STDMETHODCALLTYPE *ImportTextAsync )( 
            IBxImportRegFileService * This,
            /* [in] */ IBxRegistry *pRegistry,
            /* [in] */ BxEnumRegistryView RegistryView,
            /* [in] */ BSTR regFileContent,
            /* [in] */ IBxProgressEvents *pProgress,
            /* [retval][out] */ IBxProgressControl **ppControl);
        
        END_INTERFACE
    } IBxImportRegFileServiceVtbl;

    interface IBxImportRegFileService
    {
        CONST_VTBL struct IBxImportRegFileServiceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBxImportRegFileService_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IBxImportRegFileService_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IBxImportRegFileService_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IBxImportRegFileService_put_UseVariabledForm(This,newValue)	\
    ( (This)->lpVtbl -> put_UseVariabledForm(This,newValue) ) 

#define IBxImportRegFileService_get_UseVariabledForm(This,pValue)	\
    ( (This)->lpVtbl -> get_UseVariabledForm(This,pValue) ) 

#define IBxImportRegFileService_ImportFile(This,pRegistry,RegistryView,strRegFilePath)	\
    ( (This)->lpVtbl -> ImportFile(This,pRegistry,RegistryView,strRegFilePath) ) 

#define IBxImportRegFileService_ImportFileAsync(This,pRegistry,RegistryView,strRegFilePath,pProgress,ppControl)	\
    ( (This)->lpVtbl -> ImportFileAsync(This,pRegistry,RegistryView,strRegFilePath,pProgress,ppControl) ) 

#define IBxImportRegFileService_ImportText(This,pRegistry,RegistryView,regFileContent)	\
    ( (This)->lpVtbl -> ImportText(This,pRegistry,RegistryView,regFileContent) ) 

#define IBxImportRegFileService_ImportTextAsync(This,pRegistry,RegistryView,regFileContent,pProgress,ppControl)	\
    ( (This)->lpVtbl -> ImportTextAsync(This,pRegistry,RegistryView,regFileContent,pProgress,ppControl) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IBxImportRegFileService_INTERFACE_DEFINED__ */

#endif /* __BxPackerApi_Interfaces_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


