0

I am working on a DirectSound application which needs to work both on WindowsXP and Windows7. The objects used are simply sound buffers, but are currently early bound:

Private dx As DirectX8  
Private ds As DirectSound8 
Private mdsBuf As DSBUFFERDESC
Private mdsBuffer(7) As DirectSoundSecondaryBuffer8 

Firstly, how do I late bind these using CreateObject? What are the ProgId's? I guess something like:

Dim dx As Object
Set dx = CreateObject("DIRECT.DirectX8.0")

Secondly, I believe Windows7 uses DirectX 11. Are there equivalent ProgId's? Or is the object model different?

Thanks!

Guillermo Phillips
  • 2,176
  • 1
  • 23
  • 40
  • Thanks, but I know that late binding (under XP) will definitely work, what I lack is the detail. Whether I can even use late binding for DirectX 11, is the other question. – Guillermo Phillips Jul 17 '12 at 20:16

1 Answers1

1

Have you read through Visual Basic 6.0 DirectX applications fail to run on Windows Vista and later yet?

The upshot is that DirectX from VB6 is no longer supported.

Bob77
  • 13,167
  • 1
  • 29
  • 37
  • I appreciate that existing applications will not work. But I have the luxury of writing code from scratch. How would I make it work? – Guillermo Phillips Jul 17 '12 at 15:37
  • Basically, you can't. As the MS KB article states: "The DirectX for Visual Basic 6.0 components are not available on Windows Vista and Windows Server 2008. There is no official or supported way to install these components on Windows Vista." – Bob77 Jul 18 '12 at 04:59