This is going to be a *****-post with some pointers. Thou are warned :]
Looking at that test.rar there are few things that bothered me a bit, mostly code layout and type declaration. I know this is a test so I'll ignore the type dims but..
VB Code:
Public Function Initialise() As Boolean
On Error GoTo ErrHandler:
Dim DispMode As D3DDISPLAYMODE '//Describes our Display Mode
Dim D3DWindow As D3DPRESENT_PARAMETERS '//Describes our Viewport
Set Dx = New DirectX8 '//Create our Master Object
Set D3D = Dx.Direct3DCreate() '//Make our Master Object create the Direct3D Interface
D3D.GetAdapterDisplayMode D3DADAPTER_DEFAULT, DispMode '//Retrieve the current display Mode
Looks a lot better when
VB Code:
Public Function fbInitD3D() As Boolean
On Error GoTo ErrHandler
'Describes our Display Mode and Port.
Dim DispMode As D3DDISPLAYMODE
Dim D3DWindow As D3DPRESENT_PARAMETERS
'Create our Master Object and D3D Interface.
Set Dx = New DirectX8
Set D3D = Dx.Direct3DCreate()
D3D.GetAdapterDisplayMode D3DADAPTER_DEFAULT, DispMode
Which gets me to a few pointers:
- We need to set a certain rulebase regarding type definitions, function naming, etc.
- Layout.. use tabs.. use a LOT of tabs if necessary.. having everything splattered against the left makes code look chaotic.
- Commenting.. Each module/form should have a top comment saying basically who edited it last, what was edited and when. (WWW) - Also place comments above code .. not behind it as it might be obscured by the width of the code window.
- Option Explicit.... needs no explanation.. if someone is wondering why option explicit I'm going to pull out an IRC trout and slap 'm 
- No Variants without damn good reasons.. The most common mistake:
^ A is a variant...
- For I/O matters... no Open "x" for input as #1 or #2.. or #5.. use Freefile.
My 2 million cents ;]