1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- (* Copyright (c) 2004 - 2005 DP Sisteme 2000 srl*)
- MODULE Shell32; (** non-portable / source: Windows.Shell32.Mod *)
- IMPORT SYSTEM, Kernel32, Modules;
- CONST
- (*
- #define SW_HIDE 0
- #define SW_SHOWNORMAL 1
- #define SW_NORMAL 1
- #define SW_SHOWMINIMIZED 2
- #define SW_SHOWMAXIMIZED 3
- #define SW_MAXIMIZE 3
- #define SW_SHOWNOACTIVATE 4
- #define SW_SHOW 5
- #define SW_MINIMIZE 6
- #define SW_SHOWMINNOACTIVE 7
- #define SW_SHOWNA 8
- #define SW_RESTORE 9
- #define SW_SHOWDEFAULT 10
- #define SW_FORCEMINIMIZE 11
- #define SW_MAX 11
- *)
- SWNORMAL* = 1;
- TYPE
- LPCSTR* = ADDRESS;
- HWND* = Kernel32.HANDLE;
- HINSTANCE* = Kernel32.HINSTANCE;
- INT* = LONGINT;
- VAR
- shell32: Kernel32.HMODULE;
- ShellExecute-: PROCEDURE {WINAPI}
- (hwnd: HWND; lpOperation, lpFile: ARRAY OF CHAR; lpParameters, lpDirectory: LPCSTR; nShowCmd: INT): HINSTANCE;
- PROCEDURE TermMod;
- BEGIN
- IF shell32 # Kernel32.NULL THEN
- Kernel32.FreeLibrary(shell32); shell32 := Kernel32.NULL
- END
- END TermMod;
- PROCEDURE Init;
- VAR str: ARRAY 32 OF CHAR;
- BEGIN
- str := "shell32.dll";
- shell32 := Kernel32.LoadLibrary(str);
- Kernel32.GetProcAddress(shell32, "ShellExecuteA", SYSTEM.VAL(ADDRESS, ShellExecute));
- Modules.InstallTermHandler(TermMod)
- END Init;
- BEGIN
- Init()
- END Shell32.
|