Outline: Extending an Application

Click to open or copy the Outline project files.

Click to open or copy the files for the Lib directory (required).

The Outline sample application set demonstrates taking a base application (in this case Outline.exe) and extending it into an OLE container and server (Cntroul and Svroutl, respectively), and into an OLE in-place container and server.

"In-place" is also known as "visual editing". The container and server are Icntrotl and Isvrotl, respectively.

These applications attempt to implement the complete OLE functionality and recommended user model. For example, these applications implement all of the OLE user interface dialog boxes. As such, this is not a trivial sample application set.

All Outline sample applications support loading and saving files; they all use docfiles for storage.

Building SDK Samples

This sample uses the following keywords:

_assert; _fmemcpy; _fmemset; aboutdlgproc; addeditdlgproc; addref; advise; appwndproc; assignpopupmessage; caninplaceactivate; codisconnectobject; createbindctx; createdataadviseholder; creategenericcomposite; createhatchwindow; createitemmoniker; createmenu; createoleadviseholder; createsolidbrush; createstatuswindow; createstream; createwindow; defined; definenamedlgproc; defwindowproc; delete; deletemenu; deleteobject; destroymenu; destroystatuswindow; destroywindow; docwndproc; drawfocusrect; drawmenubar; enumadvise; exttextout; failed; fillrect; fnassert; getaccelitemcount; getclientrect; getcontrolmessage; getconvertstg; getdc; getdisplayname; geticonofclass; getitemmessage; getmenu; getmoniker; getpopupmessage; getrandom; getstockobject; getsyscolor; getsysmenumessage; gettextextentpoint; gettextmetrics; getwindow; getwindowcontext; getwindowrect; gotonamedlgproc; hiword; init_interfaceimpl; inputtextdlg; insertmenu; insertmenus; int; int)sendmessage; intersectrect; invalidaterect; invertrect; is_filename_delim; isequalclsid; isequaliid; iswindowvisible; linelistwndproc; liset32; loadcursor; loword; lparam; lplinelist)&; lpoledoc; lstrcpy; lstrlen; makelparam; max; modifymenu; mytranslateaccelerator; new; offsetrect; olecreatemenudescriptor; oledbgaddrefmethod; oledbgassert; oledbgassertsz; oledbgout; oledbgout2; oledbgout3; oledbgout4; oledbgouthresult; oledbgoutnoprefix3; oledbgoutrect3; oledbgoutrefcnt4; oledbgqueryinterfacemethod; oledbgreleasemethod; oleregenumformatetc; oleregenumverbs; olereggetmiscstatus; olereggetusertype; olestdfreestring; olestdgettreatasfmtusertype; olestdmsgfilter_setparentwindow; olestdnoteobjectchangetime; olestdqueryformatmedium; olestdrelease; olestdverifyrelease; olestr; olestrcmp; olestrcpy; oleuishowobject; oninplaceactivate; oninplacedeactivate; onposrectchange; onuiactivate; onuideactivate; openstream; pack; postmessage; printdlgproc; querygetdata; rand; read; registerclass; registerstatusclass; release; releasedc; removemenu; removemenus; resetorigdc; save; screentoclient; seek; selectobject; sendmessage; sendonclose; sendondatachange; sendonrename; sendonsave; setactiveobject; setbkmode; setborderspace; setconvertstg; setdctoanisotropic; setdebuglevelcommand; setfocus; sethatchwindowsize; setlineheightdlgproc; setmapmode; setmenu; setparent; setstatustext; settextcolor; setviewportextex; setwindowextex; showwindow; stdmethodimp_; succeeded; switch; tracedebug; uint; unadvise; updatewindow; winmain; write; writefmtusertypestg; wsprintf; xformheightinhimetrictopixels; xformsizeinhimetrictopixels; xformwidthinhimetrictopixels