ControlWizard Generates Both 16-bit and 32-bit Projects (125242)
The information in this article applies to:
- Microsoft OLE Control Developer's Kit (CDK)
This article was previously published under Q125242 SUMMARY
The ControlWizard included with the Microsoft OLE Control Development
Kit (CDK) generates both 16-bit and 32-bit projects. In most cases,
you can develop your control on either a 16-bit or 32-bit platform,
and then rebuild the control on the other platform.
MORE INFORMATION
When ControlWizard is used to create an OLE control, two projects are
generated. The full project name you specify is used as the base name
for the 16-bit MAK file and other files used by the 16-bit IDE. The
first six letters of the project name followed by "32" are used to
create a base name for the 32-bit MAK and DEF files and other files
used by the 32-bit IDE.
For example, if the full project name is TESTCTRL, these two MAK files
are generated:
TESTCTRL.MAK -- 16-bit Project File
TESTCT32.MAK -- 32-bit Project File
ControlWizard also generates a 'makefile' file that NMAKE can use to
generate either a 16- or 32-bit project by specifying the WIN32 flag
on the command line. For example:
nmake WIN32=1 // 32 bit version
nmake WIN32=0 // 16 bit version
Within the generated source files, place platform-dependent code in
conditional compilation blocks, as shown in this example:
LRESULT CTestCtrl::OnOcmCommand(WPARAM wParam, LPARAM lParam)
{
#ifdef _WIN32
WORD wNotifyCode = HIWORD(wParam);
#else
WORD wNotifyCode = HIWORD(lParam);
#endif
// TODO: Switch on wNotifyCode here.
return 0;
}
To maintain platform independence, use conditional compilation blocks
to isolate platform dependencies in the code you add to your control.
Use the #error statement to flag features that are not implemented
for one platform or the other. For example, you might code the previous
example like the following if the 32-bit implementation was not complete:
LRESULT CTestCtrl::OnOcmCommand(WPARAM wParam, LPARAM lParam)
{
#ifdef _WIN32
#error OnOcmCommand parameter decoding not completed for Win32!
#else
WORD wNotifyCode = HIWORD(lParam);
#endif
// TODO: Switch on wNotifyCode here.
return 0;
}
Note that because separate project files are used for 16- and 32-bit
targets, all project maintenance will need to be performed for both
projects. Project maintenance activities include:
- Adding or removing project files.
- Changing compiler settings.
- Changing linker settings, including input libraries.
Modification Type: | Minor | Last Reviewed: | 8/16/2005 |
---|
Keywords: | KB125242 |
---|
|