i don't know what im doin' wrong, CreateWindowExA,in CreateHWND, won't create a window it just returns 0.
Strict Import PUB.Win32 Import PUB.DirectX Extern "win32" Function RegisterClassExA(class:WNDCLASSEX)="RegisterClassExA@4" Function UpdateWindow(hwnd)="UpdateWindow@4" End Extern Const D3D_SDK_VERSION=32|$80000000 Const D3D_SDK_VERSION_DEBUG=31|$80000000 Const D3DPRESENT_INTERVAL_IMMEDIATE=-2147483648 Global d3d:IDirect3D9=Null Global d3ddev:IDirect3DDevice9=Null Global d3dpp:D3DPRESENT_PARAMETERS=Null Global TriDClassName:Byte Ptr="TriD_Window_Class".ToCString() Function CreateHWND(width,height,fullscreen) If Not MyRegisterClass(GetModuleHandleA(0)) RuntimeError "Error registering class" Local hwnd,style If fullscreen style=WS_EX_TOPMOST|WS_VISIBLE|WS_POPUP Else style=WS_OVERLAPPEDWINDOW EndIf Local wndTitle:Byte Ptr=AppTitle.ToCString() Local wndClass:Byte Ptr=TriDClassName hwnd=CreateWindowExA(.. 0,.. wndClass,.. wndTitle,.. style,.. CW_USEDEFAULT,.. CW_USEDEFAULT,.. width,.. height,.. 0,.. 0,.. GetModuleHandleA(0),.. Null) MemFree wndTitle If hwnd=0 RuntimeError "Error creating window" ShowWindow(hwnd,True) UpdateWindow(hwnd) Return hwnd End Function Function CreateD3D(hwnd,width,height,fullscreen,depth) Local version=D3D_SDK_VERSION ?Debug version=D3D_SDK_VERSION_DEBUG ? d3d=Direct3DCreate9(version) Local dm:D3DDISPLAYMODE=New D3DDISPLAYMODE d3d.GetAdapterDisplayMode(D3DADAPTER_DEFAULT,dm) d3dpp=New D3DPRESENT_PARAMETERS d3dpp.Windowed = Not fullscreen d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD d3dpp.EnableAutoDepthStencil = True d3dpp.AutoDepthStencilFormat = D3DFMT_D16 d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE d3dpp.BackBufferFormat = dm.Format d3dpp.BackBufferCount = 1 d3dpp.BackBufferWidth = width d3dpp.BackBufferHeight = height d3dpp.hDeviceWindow = hwnd d3d.CreateDevice(.. D3DADAPTER_DEFAULT,.. D3DDEVTYPE_HAL,.. hwnd,.. D3DCREATE_SOFTWARE_VERTEXPROCESSING,.. d3dpp,.. d3ddev) End Function Function WinProc(hwnd,msg,wParam,lParam) bbSystemEmitOSEvent hwnd,msg,wParam,lParam,Null Select msg Case WM_DESTROY End Return 0 End Select Return DefWindowProcA(hwnd,msg,wParam,lParam) End Function Function MyRegisterClass(hInstance) Global registered If registered Return registered=True Local wc:WNDCLASSEX=New WNDCLASSEX wc.cbSize=SizeOf(WNDCLASSEX) wc.style = CS_HREDRAW|CS_VREDRAW wc.lpfnWndProc = WinProc wc.cbClsExtra = 0 wc.cbWndExtra = 0 wc.hInstance = hInstance wc.hIcon = 0 wc.hCursor = LoadCursorA(Null, Byte Ptr IDC_ARROW) wc.hbrBackground = GetStockObject(WHITE_BRUSH) wc.lpszMenuName = 0 wc.lpszClassName = TriDClassName wc.hIconSm = 0 Return RegisterClassExA(wc) End Function Type WNDCLASSEX Field cbSize Field style Field lpfnWndProc:Byte Ptr Field cbClsExtra Field cbWndExtra Field hInstance Field hIcon Field hCursor Field hbrBackground Field lpszMenuName:Byte Ptr Field lpszClassName:Byte Ptr Field hIconSm End Type