| 
| 
SAMPLE: MFCINP16: Inproc 16-bit MFC Automation Object
ID: Q130843
 
 |  The information in this article applies to:
 
 
Microsoft OLE, version  1.0
Microsoft Foundation Classes (MFC), used with:
Microsoft Visual C++ for Windows, 16-bit edition, version  1.52
 
 
 SUMMARY
MFC's App Wizard will not generate an inproc OLE Automation server. This
article gives you the steps to follow to create an inproc automation server
using MFC. MFCINP16, a sample available from the Microsoft Download Center,
is a 16-bit inproc automation object that was created using the steps in
this article.
 
 MORE INFORMATIONThe following file is available for download from the Microsoft
Download Center. Click the file name below to download the file:
 MFCinp16.exeFor more information about how to download files from the Microsoft
Download Center, please visit the Download Center at the following Web
address http://www.microsoft.com/downloads/search.aspand then click How to use the Microsoft Download Center. 
 MFC's App Wizard doesn't generate inproc (DLL) OLE servers because it is
not possible for MFC to fully implement one that can open into a separate
window. MFC needs to hook into the client's main message retrieval loop to
translate accelerators of the separate window and to implement idle-time
processing. OLE doesn't provide such a mechanism. It is entirely possible
to implement an inproc server in MFC with no user interface or with a very
simple user interface. This article shows you how.
 Steps to Create a 16-Bit Inproc Automation Object in MFCIt is assumed that Visual C++ version 1.51 or greater and the Control
Development Kit have been installed.
 
 Use INPROC.CPP, INPROC.H, and STDAFX.H from the sample as the starting
   point. Copy these into a new directory. The names INPROC.CPP and
   INPROC.H can be changed to something more appropriate for your project.
 
 Create a new project by choosing New from the Project menu and selecting
   the Windows dynamic-link library as the type. Add INPROC.CPP to this
   project. (The sample uses inproc for the project name.)
 
 From the Options menu, choose Project and select Compiler. Add the
   following in the C/C++ CompilerOptions dialog box under the
   CustomOptions category in the OtherOptions edit control:
From the Options menu, choose Project and select Linker. Add the
   following libraries in the LinkerOptions dialog box under the Input
   category in the Libraries edit control:
   /D "_USRDLL" 
 
   ole2, compobj, ole2disp, typelib, ole2nls, mfcoleui, storage 
 
 Choose ClassWizard from the Project menu. ClassWizard will complain that
   the .CLW file does not exist. It will ask you to rebuild the .CLW file
   by opening the project in App Studio and running ClassWizard.
 
 Open AppStudio by choosing it from the Tools menu. Save the resource
   file, and run ClassWizard from AppStudio by choosing ClassWizard from
   the Resource menu. The CLW file will now be built after you choose OK in
   the SelectSourceFiles dialog box. Complete the following steps:
 
 Select the OLE Automation tab in the MFC ClassWizard dialog.
 
 Choose the AddClass button, and add a class of type CCmdTarget.
 
 Select the OLEAutomation check box.
 
 Select the OLECreatable check box, and provide an ExternalName
      (progID) if this is a top-level automation object. This external name
      will be used by the automation controller/client to create the
      object. (The sample creates a class called TestObject, which has an
      external name Inproc.TestObject.)
 
 
 Add the required automation properties and methods to the newly
   created class. (The sample creates a method called TestMethod that
   returns void and has no parameters. The method calls MessageBeep.)
 
 Attempt to build the project. Visual C++ will ask if you want to
   create a default .DEF file. Edit the default .DEF file to export the
   following:
   DllGetClassObjectDllCanUnloadNow
 DllRegisterServer
 
 Build the project. Register the inproc Automation object by choosing
   RegisterControl from the Tools menu.
 
 VB.MAK and VB.FRM in the sample are Visual Basic version 3.0 files that
   you can use to control the object.
 
 Additional query words: 
kbole kbfile  
Keywords          : kbole kbAutomation kbMFC kbOLE200 kbVC152 kbGrpCom kbDSupport LeTwoAto Version           : :1.0
 Platform          : WINDOWS
 Issue type        :
 |