diff --git a/ueforth/windows/ueforth.rc b/ueforth/windows/ueforth.rc index d2a413a..d34ed24 100644 --- a/ueforth/windows/ueforth.rc +++ b/ueforth/windows/ueforth.rc @@ -12,4 +12,5 @@ // See the License for the specific language governing permissions and // limitations under the License. +#define IDI_MAIN_ICON 1001 IDI_MAIN_ICON ICON "out/resources/eforth.ico" diff --git a/ueforth/windows/windows_core.fs b/ueforth/windows/windows_core.fs index 426d719..91eda72 100644 --- a/ueforth/windows/windows_core.fs +++ b/ueforth/windows/windows_core.fs @@ -35,6 +35,7 @@ z" GetTickCount" 0 Kernel32 GetTickCount z" WaitForSingleObject" 2 Kernel32 WaitForSingleObject z" GetLastError" 0 Kernel32 GetLastError z" GetCommandLineW" 0 Kernel32 GetCommandLineW +z" GetModuleHandleA" 1 Kernel32 GetModuleHandleA z" Shell32.dll" dll Shell32 z" CommandLineToArgvW" 2 Shell32 CommandLineToArgvW diff --git a/ueforth/windows/windows_test.fs b/ueforth/windows/windows_test.fs index 0527f63..16ceecd 100644 --- a/ueforth/windows/windows_test.fs +++ b/ueforth/windows/windows_test.fs @@ -17,11 +17,14 @@ also windows also internals z" MyClass" constant MyClassName z" Test Window" constant MyWindowTitle +NULL GetModuleHandleA constant hinst + pad WINDCLASSA erase WindowProcShim pad ->lpfnWndProc ! - DefaultInstance pad ->hInstance ! + hinst pad ->hInstance ! MyClassName pad ->lpszClassName ! NULL IDC_ARROW LoadCursorA pad ->hCursor ! + hinst IDI_MAIN_ICON LoadIconA pad ->hIcon ! pad RegisterClassA constant myclass create ps PAINTSTRUCT allot @@ -53,7 +56,7 @@ create bar ' foo , ' yield , 0 myclass MyWindowTitle WS_OVERLAPPEDWINDOW CW_USEDEFAULT CW_USEDEFAULT 640 480 -NULL NULL DefaultInstance bar CreateWindowExA constant hwnd +NULL NULL hinst bar CreateWindowExA constant hwnd hwnd SW_SHOWMAXIMIZED ShowWindow drop hwnd SetForegroundWindow drop diff --git a/ueforth/windows/windows_user.fs b/ueforth/windows/windows_user.fs index 6927abe..5d36a3e 100644 --- a/ueforth/windows/windows_user.fs +++ b/ueforth/windows/windows_user.fs @@ -89,6 +89,7 @@ WS_OVERLAPPEDWINDOW constant WS_TILEDWINDOW ( General use ) $400000 constant DefaultInstance +1001 constant IDI_MAIN_ICON $80000000 constant CW_USEDEFAULT struct POINT @@ -127,21 +128,33 @@ z" FillRect" 3 User32 FillRect z" PostQuitMessage" 1 User32 PostQuitMessage z" LoadCursorA" 2 User32 LoadCursorA -32650 constant IDC_APPSTARTING 32512 constant IDC_ARROW -32515 constant IDC_CROSS -32649 constant IDC_HAND -32651 constant IDC_HELP 32513 constant IDC_IBEAM -32641 constant IDC_ICON -32648 constant IDC_NO -32640 constant IDC_SIZE -32646 constant IDC_SIZEALL -32643 constant IDC_SIZENESW -32645 constant IDC_SIZENS -32642 constant IDC_SIZENWSE -32644 constant IDC_SIZEWE -32516 constant IDC_UPARROW 32514 constant IDC_WAIT +32515 constant IDC_CROSS +32516 constant IDC_UPARROW +32640 constant IDC_SIZE +32641 constant IDC_ICON +32642 constant IDC_SIZENWSE +32643 constant IDC_SIZENESW +32644 constant IDC_SIZEWE +32645 constant IDC_SIZENS +32646 constant IDC_SIZEALL +32648 constant IDC_NO +32649 constant IDC_HAND +32650 constant IDC_APPSTARTING +32651 constant IDC_HELP + +z" LoadIconA" 2 User32 LoadIconA +32512 constant IDI_APPLICATION +32513 constant IDI_HAND +32514 constant IDI_QUESTION +32515 constant IDI_EXCLAMATION +32516 constant IDI_ASTERISK +32517 constant IDI_WINLOGO +32518 constant IDI_SHIELD +IDI_EXCLAMATION constant IDI_WARNING +IDI_HAND constant IDI_ERROR +IDI_ASTERISK constant IDI_INFORMATION only forth definitions