Hi Mike,
there is good news. I suppose I understand a little bit more about the purpose of manifests. The bad news is that my app will not work any more the way I expected. Did it work for you? Must I really use InitCommonControlsEx (which would be my next step) or can I use InitCommonControls nevertheless?
I tried both ways: 1) using GoRc.exe + LinkRes2.exe with batch file, and 2) compiling .rc to res, compiling Sliders.o2bas and then added the .res file to Sliders.exe using Resource Hacker 4.5.30.
This is Sliders.rc
#define MANIFEST 24
#define IDD_DLGMain 1000
#define IDC_Toolbar 1001
#define IDC_Table 1002
#define IDR_MAINMENU 10000
#define IDM_StartGame 10001
#define IDM_Exit 10002
#define IDM_MATRIX3 10009
#define IDM_MATRIX4 10010
#define IDM_MATRIX5 10012
#define IDM_SOUND 10013
#define IDM_ABOUT 10016
#define IDI_AppIcon 100
#define ID_TBbmp 101
#define IDB_Color3 102
#define IDB_Color4 103
#define IDB_Color5 104
#define IDR_VERSION1 1
LANGUAGE 9,2
IDD_DLGMain DIALOGEX -2,-11,240,188
CAPTION "Slider Puzzles"
FONT 10,"MS Sans Serif",400,0,0
MENU IDR_MAINMENU
STYLE WS_VISIBLE|WS_OVERLAPPEDWINDOW|DS_CENTER
BEGIN
CONTROL "",IDC_Toolbar,"ToolbarWindow32",WS_CHILDWINDOW|WS_VISIBLE|TBSTYLE_TOOLTIPS|CCS_TOP,0,0,42,12
CONTROL "",IDC_Table,"Static",WS_CHILDWINDOW|WS_VISIBLE,42,24,154,154,WS_EX_CLIENTEDGE
END
IDR_MAINMENU MENU
BEGIN
POPUP "&Game"
BEGIN
MENUITEM "&Start New Game\tF2",IDM_StartGame
MENUITEM SEPARATOR
MENUITEM "E&xit\tAlt+F4",IDM_Exit
END
POPUP "&Options"
BEGIN
POPUP "&Size Board"
BEGIN
MENUITEM "&3 x 3",IDM_MATRIX3,CHECKED
MENUITEM "&4 x 4",IDM_MATRIX4
MENUITEM "&5 x 5",IDM_MATRIX5
END
MENUITEM "&Sound\tCtrl+S",IDM_SOUND,CHECKED
END
POPUP "&Help"
BEGIN
MENUITEM "&About\tF1",IDM_ABOUT
END
END
IDI_AppIcon ICON DISCARDABLE "Sliders.ico"
ID_TBbmp BITMAP DISCARDABLE "toolbar.bmp"
IDB_Color3 BITMAP DISCARDABLE "color3.bmp"
IDB_Color4 BITMAP DISCARDABLE "color4.bmp"
IDB_Color5 BITMAP DISCARDABLE "color5.bmp"
IDR_VERSION1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEOS 0x00000004
FILETYPE 0x00000001
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "08090000"
BEGIN
VALUE "FileVersion", "1.0.0.0\0"
VALUE "ProductVersion", "1.0.0.0\0"
VALUE "CompanyName", "OxygenBasic.org, http://www.OxygenBasic.org/\0"
VALUE "ProductName", "Slider Puzzles\0"
VALUE "FileDescription", "Slider Puzzle Game\0"
VALUE "InternalName", "Sliders\0"
VALUE "LegalCopyright", "Public Domain \0"
VALUE "OriginalFilename", "Sliders\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0809, 0x0000
END
END
CREATEPROCESS_MANIFEST_RESOURCE_ID MANIFEST "Sliders.exe.manifest"
And this is Sliders.exe.manifest (I spied a little bit from FBSL.exe):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Sliders.Sliders.Sliders"
type="win32"
/>
<description>Sliders Puzzle Game</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
I wonder if something is still missing or if I must change something in Sliders.o2bas / Sliders.inc. Or is InitCommonControls forbidden at all if I use a manifest?
Roland
.