    //+-------------------------------------------------------------------------
    //
    //  Microsoft Windows
    //
    //  Copyright (C) Microsoft Corporation, 1998 - 2000
    //
    //  File:       direct.idl
    //
    //--------------------------------------------------------------------------         	    
    #define VB_ONLY 1    
   
    //
    // from windef.h
    #define	MAX_PATH	256
    
    //
    // from mmsystem.h 
    //
    #define MAXPNAMELEN 32			/* max product name length (including NULL) */
    #define MAX_JOYSTICKOEMVXDNAME 260		/* max oem vxd name length (including NULL) */
    


    
    #ifdef VB_ONLY
	#define _dxj_DirectX8    	DirectX8    
	#define I_dxj_DirectX8    	IDirectX8    
	#define I_dxj_Direct3D8		Direct3D8
    #else
	#define I_dxj_Direct3D8		IUnknown
    #endif
    
    
    
    
    #include "ocidl.idl"
    
    //
    // Base types 
    //
    import "wtypes.idl";	
    
    [
    	
  	 uuid(E1211242-8E94-11d1-8808-00C04FC2C603),
    	 version(1.0),
         helpstring("DirectX 8 for Visual Basic Type Library"),
     	 helpfile ("directx8_vb.chm")
    ]
    
    library DxVBLibA
    {
    

    #include "common.idl"    

    #include "d3di.idl"		//D3D8
    #include "dmi.idl"		//DMUSIC DSOUND
    #include "dii.idl"    	//DINPUT
    #include "dpi.idl"		//DPLAY DPLAYVOICE
    #include "d3dxmath.idl"	//D3DXMATH
    #include "d3dhelp.idl"	//D3DHELPER FUNC
    #include "dxf.idl"		//XOF FILE SUPPORT
    
    
    
    

    	[
    		object,
    	    uuid(E7FF1301-96A5-11d3-AC85-00C04FC2C602),
    		helpstring("DirectX8 root object functions"),
    		pointer_default(unique),
    		helpcontext(86001)
    
    	]
    	interface I_dxj_DirectX8 : IUnknown	
    	{
    		import "oaidl.idl";
    		
    		[helpcontext(86020)]		HRESULT DirectSoundCreate([in] BSTR guid, [out,retval] I_dxj_DirectSound **ret);
    		[helpcontext(86019)]		HRESULT DirectSoundCaptureCreate([in] BSTR guid, [out,retval] I_dxj_DirectSoundCapture **ret);
    		[helpcontext(86023)]		HRESULT GetDSEnum([out,retval] I_dxj_DSEnum **retVal);
    		[helpcontext(86022)]		HRESULT GetDSCaptureEnum([out,retval] I_dxj_DSEnum **retVal);		
		[helpcontext(87022)]		HRESULT DirectInputCreate([out,retval]I_dxj_DirectInput8 **ret);
    	    	    
    		[helpcontext(86008)]		HRESULT DirectMusicLoaderCreate([out,retval] I_dxj_DirectMusicLoader **ret);
    		[helpcontext(86007)]		HRESULT DirectMusicComposerCreate([out,retval] I_dxj_DirectMusicComposer **ret);
    		[helpcontext(86009)]		HRESULT DirectMusicPerformanceCreate([out,retval] I_dxj_DirectMusicPerformance **ret);
    
		#ifdef _WIN64
    		[helpcontext(86025)]		HRESULT CreateEvent([in] I_dxj_DirectXEvent8 *event,[out,retval] HANDLE *h);
    		[helpcontext(86024)]		HRESULT SetEvent([in] HANDLE eventId);
    		[helpcontext(86004)]		HRESULT DestroyEvent([in] HANDLE eventId);
		#else
    		[helpcontext(86025)]		HRESULT CreateEvent([in] I_dxj_DirectXEvent8 *event,[out,retval] LONG *h);
    		[helpcontext(86024)]		HRESULT SetEvent([in] LONG eventId);
    		[helpcontext(86004)]		HRESULT DestroyEvent([in] LONG eventId);
		#endif
    		
    		//needs to be added to master help ids
    		[helpcontext(86003)]		HRESULT CreateNewGuid([out,retval] BSTR *retGuid);
		[helpcontext(86016)]		HRESULT DirectPlayVoiceClientCreate([out,retval] I_dxj_DirectPlayVoiceClient **ret);
  		[helpcontext(86017)]		HRESULT DirectPlayVoiceServerCreate([out,retval] I_dxj_DirectPlayVoiceServer **ret);
  		[helpcontext(86018)]		HRESULT DirectPlayVoiceTestCreate([out,retval] I_dxj_DirectPlayVoiceSetup **ret);
  		[helpcontext(86601)]		HRESULT DirectXFileCreate([out,retval] I_dxj_DirectXFile **ret);
  		[helpcontext(86014)]		HRESULT DirectPlayPeerCreate([out,retval] I_dxj_DirectPlayPeer **ret);
  		[helpcontext(86015)]		HRESULT DirectPlayServerCreate([out,retval] I_dxj_DirectPlayServer **ret);
  		[helpcontext(86011)]		HRESULT DirectPlayClientCreate([out,retval] I_dxj_DirectPlayClient **ret);
  		[helpcontext(86010)]		HRESULT DirectPlayAddressCreate([out,retval] I_dxj_DirectPlayAddress **ret);

		[helpcontext(86005)]		HRESULT Direct3DCreate([out,retval] I_dxj_Direct3D8 **ret);
		[helpcontext(86013)]		HRESULT DirectPlayLobbyClientCreate([out,retval] I_dxj_DirectPlayLobbyClient **ret);
		[helpcontext(86012)]		HRESULT DirectPlayLobbiedApplicationCreate([out,retval] I_dxj_DirectPlayLobbiedApplication **ret);


    	};
    
    
    
    
    	///////////////////////////////////////////////////////////////////////////
	importlib("stdole2.tlb");
    
    
    	
    	[
    		uuid(E7FF1300-96A5-11d3-AC85-00C04FC2C602),
     		helpstring("DirectX8"),
    		helpcontext(319800)
    	]
        coclass _dxj_DirectX8 { 
		[default] interface I_dxj_DirectX8; 
	};
    	
    

    };
    
