Rev 445 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 445 | Rev 466 | ||
---|---|---|---|
1 | 1 | ||
2 | Windows NT 3.1 and 3.5x compatibility problems |
2 | Windows 3.11 (via Win32s), Windows NT 3.1 and NT 3.5x compatibility problems |
3 | ---------------------------------------------- |
3 | ---------------------------------------------------------------------------- |
4 | 4 | ||
5 | Fixed problems: |
5 | Fixed problems: |
6 | --------------- |
6 | --------------- |
7 | 7 | ||
8 | - `GetEnvironmentStringsA` and `FreeEnvironmentStrings` not found in WinAPI. |
8 | - `GetEnvironmentStringsA` and `FreeEnvironmentStrings` not found in WinAPI. |
9 | 9 | ||
10 | Fixed: The CLib of OpenWatcom 1.9 imports these two functions. |
10 | Fixed: The CLib of OpenWatcom 1.9 imports these two functions. |
11 | OpenWatcom 2.0 (beta nov 1 2017) calls these functions dynamically and is therefore compatible with Windows NT 3.1. |
11 | OpenWatcom 2.0 (beta nov 1 2017) calls these functions dynamically and is therefore compatible with Windows NT 3.1. |
12 | 12 | ||
13 | - `CreateDIBSection` not found in WinAPI |
13 | - `CreateDIBSection` not found in WinAPI |
14 | 14 | ||
15 | Fixed in SVN Revision 407 (removed because not required). |
15 | Fixed in SVN Revision 407 (removed because not required). |
16 | 16 | ||
17 | - `GetVersionEx` not found in WinAPI. |
17 | - `GetVersionEx` not found in WinAPI. |
18 | 18 | ||
19 | Fixed in SVN Revision 411 and 414 (calling dynamically now). |
19 | Fixed in SVN Revision 411 and 414 (calling dynamically now). |
20 | 20 | ||
21 | - `RegisterClassExA` and `GetClassInfoExA` not found in WinAPI. |
21 | - `RegisterClassExA` and `GetClassInfoExA` not found in WinAPI. |
22 | 22 | ||
23 | Fixed in SVN Revision 412 (replaced by `RegisterClassA` and `GetClassInfoA`). |
23 | Fixed in SVN Revision 412 (replaced by `RegisterClassA` and `GetClassInfoA`). |
24 | 24 | ||
25 | - Plugins created by the custom implementation of `UpdateResourceA` (for Win9x and WinNT<4.0) could not be loaded on |
25 | - Plugins created by the custom implementation of `UpdateResourceA` (for Win9x and WinNT<4.0) could not be loaded on |
26 | some versions of Windows, because the Optional PE Header `SizeOfImage` was calculated wrong. |
26 | some versions of Windows, because the Optional PE Header `SizeOfImage` was calculated wrong. |
27 | 27 | ||
28 | Fixed in SVN Revision 415. |
28 | Fixed in SVN Revision 415. |
29 | Reported bug in the Wine code here: https://bugs.winehq.org/show_bug.cgi?id=52119 |
29 | Reported bug in the Wine code here: https://bugs.winehq.org/show_bug.cgi?id=52119 |
30 | 30 | ||
31 | - The version info of a 64 bit plugin cannot be written using Windows NT 3.51, because the resources could not be loaded from the 64 bit image. |
31 | - The version info of a 64 bit plugin cannot be written using Windows NT 3.51, because the resources could not be loaded from the 64 bit image. |
32 | 32 | ||
33 | Fixed in SVN Revision 416: The version info template is now inserted into the 32 bit image as `TPLT` resource. |
33 | Fixed in SVN Revision 416: The version info template is now inserted into the 32 bit image as `TPLT` resource. |
34 | Therefore, the 64 bit image does not need to be read. |
34 | Therefore, the 64 bit image does not need to be read. |
35 | 35 | ||
36 | - `LoadImageA` not found in WinAPI of Windows NT 3.1 |
36 | - `LoadImageA` not found in WinAPI of Windows NT 3.1 |
37 | 37 | ||
38 | Fixed in SVN Revision 419: We removed the "+" and "-" zoom pictures and replaced them with buttons (including the zoom percentage label), |
38 | Fixed in SVN Revision 419: We removed the "+" and "-" zoom pictures and replaced them with buttons (including the zoom percentage label), |
39 | because this looks better in Windows 10, and buttons are more likely to be clicked intuitively. |
39 | because this looks better in Windows 10, and buttons are more likely to be clicked intuitively. |
40 | The caution icon is now a subclass of "Button" instead of "STATIC", and the icon is drawn using `BS_OWNERDRAW` and `DrawIcon`. |
40 | The caution icon is now a subclass of "Button" instead of "STATIC", and the icon is drawn using `BS_OWNERDRAW` and `DrawIcon`. |
41 | Note that Windows 3.51 does not support static controls to be clicked (probably `SS_NOTIFY` and `STM_CLICKED` is not |
41 | Note that Windows 3.51 does not support static controls to be clicked (probably `SS_NOTIFY` and `STM_CLICKED` is not |
42 | implemented). |
42 | implemented). |
43 | 43 | ||
44 | - Windows NT 3.51 clicking the zoom icons and caution icons does not work! |
44 | - Windows NT 3.51 clicking the zoom icons and caution icons does not work! |
45 | 45 | ||
46 | Fixed in SVN Revision 419: Windows 3.51 does not allow static controls to be clicked. |
46 | Fixed in SVN Revision 419: Windows 3.51 does not allow static controls to be clicked. |
47 | Therefore, the zoom icons and the caution icons are now Buttons classes (or subclasses). |
47 | Therefore, the zoom icons and the caution icons are now Buttons classes (or subclasses). |
48 | 48 | ||
49 | - WinNT311: "msctls_trackbar32" is not supported by Windows NT 3.1. `DialogBoxParamA` crashes with the confusing error code "Invalid Cursor Handle". |
49 | - WinNT311: "msctls_trackbar32" is not supported by Windows NT 3.1. `DialogBoxParamA` crashes with the confusing error code "Invalid Cursor Handle". |
50 | 50 | ||
51 | Note: msctls_trackbar32 seems to be defined in COMCTL32.DLL, but Win NT 3.1 has no REGSVR32.EXE, so there can't be any controls added?? |
51 | Note: msctls_trackbar32 seems to be defined in COMCTL32.DLL, but Win NT 3.1 has no REGSVR32.EXE, so there can't be any controls added?? |
52 | Windows NT 3.51 has COMCTL32.DLL and works perfectly with the trackbars! |
52 | Windows NT 3.51 has COMCTL32.DLL and works perfectly with the trackbars! |
53 | Fixed in SVN Revision 422: We are now using the sliders of Photoshop using PLUGIN.DLL (like Filter Factory 3.0.4 does). |
53 | Fixed in SVN Revision 422: We are now using the sliders of Photoshop using PLUGIN.DLL (like Filter Factory 3.0.4 does). |
54 | If PLUGIN.DLL is not existing (e.g. non-Photoshop host) and msctls_trackbar32 is not available (Windows NT 3.1), |
54 | If PLUGIN.DLL is not existing (e.g. non-Photoshop host) and msctls_trackbar32 is not available (Windows NT 3.1), |
55 | then we will simply remove the sliders completely by subclassing them from a static control, |
55 | then we will simply remove the sliders completely by subclassing them from a static control, |
56 | and let the user enter the control values via keyboard only (SVN Revision 419). |
56 | and let the user enter the control values via keyboard only (SVN Revision 419). |
57 | Note that you can copy PLUGIN.DLL to any host application. It is not bound to Photoshop. However, it is copyrighted by Adobe! |
57 | Note that you can copy PLUGIN.DLL to any host application. It is not bound to Photoshop. However, it is copyrighted by Adobe! |
58 | 58 | ||
59 | - WinNT311+WinNT351: The preview image is not drawn at dialog box opening. You need to enter something first. |
59 | - WinNT311+WinNT351: The preview image is not drawn at dialog box opening. You need to enter something first. |
60 | 60 | ||
61 | Nothing seems to work. Already tried doing a `recalc_preview` and `drawpreview` in `WM_SHOWWINDOW` or |
61 | Nothing seems to work. Already tried doing a `recalc_preview` and `drawpreview` in `WM_SHOWWINDOW` or |
62 | `WM_ACTIVATE` or `WM_WINDOWPOSCHANGES`, or sending a message `SendMessage(hDlg, WM_USER + 123, 0, 0);` inside `WM_INITDIALOG`, |
62 | `WM_ACTIVATE` or `WM_WINDOWPOSCHANGES`, or sending a message `SendMessage(hDlg, WM_USER + 123, 0, 0);` inside `WM_INITDIALOG`, |
63 | but the code seems to be executed while the dialog is still hidden (you can see this by showing a messagebox). |
63 | but the code seems to be executed while the dialog is still hidden (you can see this by showing a messagebox). |
64 | So, I have finally solved it with a `WM_TIMER` in SVN Revision445. |
64 | So, I have finally solved it with a `WM_TIMER` in SVN Revision445. |
65 | 65 | ||
- | 66 | ||
66 | Things couldn't solve yet: |
67 | Things couldn't solve yet: |
67 | -------------------------- |
68 | -------------------------- |
68 | 69 | ||
69 | - Preview pane cannot be panned, because it seems that anything clickable needs to be a pushbutton in Win NT 3.51 |
70 | - Preview pane cannot be panned, because it seems that anything clickable needs to be a pushbutton in Win NT 3.51 |
70 | It also doesn't work if the control is `STATIC` |
71 | It also doesn't work if the control is `STATIC` |
71 | It looks like `SS_NOTIFY` and `STN_CLICKED` is not implemented in Win NT 3.5x |
72 | It looks like `SS_NOTIFY` and `STN_CLICKED` is not implemented in Win NT 3.5x |
72 | 73 | ||
- | 74 | - Windows 3.11, NT 3.1, NT 3.51: The PREVIEW control loses its contents when the window is dragged out of the screen region. |
|
- | 75 | The WM_REPAINT message is not sent by the OS? |
|
- | 76 | ||
73 | - WinNT351: Help button does not work |
77 | - Help button does not work |
74 | => Maybe WinExec helps? But can we open an URL there? Unlikely... |
78 | => Maybe WinExec helps? But can we open an URL there? Unlikely... |
75 | 79 | ||
- | 80 | - Windows NT 3.51: Window is gray instead of white. Why? Is the "OS Subsystem 4.0" detected?! |
|
- | 81 | It doesn't look good, because the PLUGIN.DLL sliders as well as all other Photoshop 3.0 windows are white. |
|
- | 82 | ||
- | 83 | - Win32s seems to be unstable, since some actions crash the system and/or Photoshop. I am not sure if we do anything wrong, though. |
|
- | 84 | ||
- | 85 | ||
76 | Open questions: |
86 | Open questions: |
77 | --------------- |
87 | --------------- |
78 | 88 | ||
79 | Which CPU architecture is required for OpenWatcom settings? Should/can we lower the CPU code generation settings in OpenWatcom (80386)? |
89 | Which CPU architecture is required for OpenWatcom settings? Should/can we lower the CPU code generation settings in OpenWatcom (80386)? |