/* * BOOKGUID.H * * CLSIDs and IIDs defined for the Windows Object book. This file * centralizes them all so we can keep track of which ones are used. * The file also includes a number of useful macros that all samples * might be interested in as well as including DEBUG.H and WIN1632.H. * * Copyright (c)1993 Microsoft Corporation, All Rights Reserved * * Kraig Brockschmidt, Software Design Engineer * Microsoft Systems Developer Relations * * Internet : kraigb@microsoft.com * Compuserve: >INTERNET:kraigb@microsoft.com */ #ifndef _BOOKGUID_H_ #define _BOOKGUID_H_ #include #include #ifdef INITGUIDS #include #endif //Types that OLE2.H et. al. leave out typedef LPVOID FAR * LPLPVOID; #ifdef _OLE2_H_ //May not include ole2.h at all times. typedef POINTL FAR * LPPOINTL; //Useful macros. #define SETFormatEtc(fe, cf, asp, td, med, li) \ {\ (fe).cfFormat=cf;\ (fe).dwAspect=asp;\ (fe).ptd=td;\ (fe).tymed=med;\ (fe).lindex=li;\ }; #define SETDefFormatEtc(fe, cf, med) \ {\ (fe).cfFormat=cf;\ (fe).dwAspect=DVASPECT_CONTENT;\ (fe).ptd=NULL;\ (fe).tymed=med;\ (fe).lindex=-1;\ }; #define SETRECTL(rcl, l, t, r, b) \ {\ (rcl).left=l;\ (rcl).top=t;\ (rcl).right=r;\ (rcl).bottom=b;\ } #define SETSIZEL(szl, h, v) \ {\ (szl).cx=h;\ (szl).cy=v;\ } #define RECTLFROMRECT(rcl, rc)\ {\ (rcl).left=(long)(rc).left;\ (rcl).top=(long)(rc).top;\ (rcl).right=(long)(rc).right;\ (rcl).bottom=(long)(rc).bottom;\ } #define RECTFROMRECTL(rc, rcl)\ {\ (rc).left=(int)(rcl).left;\ (rc).top=(int)(rcl).top;\ (rc).right=(int)(rcl).right;\ (rc).bottom=(int)(rcl).bottom;\ } #define POINTLFROMPOINT(ptl, pt) \ { \ (ptl).x=(long)(pt).x; \ (ptl).y=(long)(pt).y; \ } #define POINTFROMPOINTL(pt, ptl) \ { \ (pt).x=(int)(ptl).x; \ (pt).y=(int)(ptl).y; \ } //Here's one that should be in windows.h #define SETPOINT(pt, h, v) \ {\ (pt).x=h;\ (pt).y=v;\ } #define SETPOINTL(ptl, h, v) \ {\ (ptl).x=h;\ (ptl).y=v;\ } #endif //_OLE2_H_ /* * GUIDs * * For this book the author has been allocated the GUIDs in the range: * 00021100-0000-0000-C000-000000000046 * 000211FF-0000-0000-C000-000000000046 * * Gaps in the sequences are GUIDS used by the author for purposes other * than this book, e.g. magazine articles. */ //GUIDs for Chapter 4 //Koala DEFINE_OLEGUID(CLSID_Koala, 0x00021102, 0, 0); //Polyine DEFINE_OLEGUID(CLSID_Polyline4, 0x00021103, 0, 0); DEFINE_OLEGUID(IID_IPolyline4, 0x00021104, 0, 0); DEFINE_OLEGUID(IID_IPolylineAdviseSink4, 0x00021105, 0, 0); //GUIDs for Chapter 5 //Patron Files for Chapter 5 and beyond: becomes Patron's App ID DEFINE_OLEGUID(CLSID_PatronPages, 0x00021106, 0, 0); //Schmoo Files for Chapter 5 and beyond: becomes Schmoo's App ID DEFINE_OLEGUID(CLSID_Schmoo2Figure, 0x00021107, 0, 0); //Polyine DEFINE_OLEGUID(CLSID_Polyline5, 0x00021108, 0, 0); DEFINE_OLEGUID(IID_IPolyline5, 0x00021109, 0, 0); DEFINE_OLEGUID(IID_IPolylineAdviseSink5, 0x0002110A, 0, 0); //GUIDs for Chapter 6 //DataObject variations for the data set. Same server supplies them all. DEFINE_OLEGUID(CLSID_DataObjectSmall, 0x0002110B, 0, 0); DEFINE_OLEGUID(CLSID_DataObjectMedium, 0x0002110C, 0, 0); DEFINE_OLEGUID(CLSID_DataObjectLarge, 0x0002110D, 0, 0); //Polyine DEFINE_OLEGUID(CLSID_Polyline6, 0x0002110E, 0, 0); DEFINE_OLEGUID(IID_IPolyline6, 0x0002110F, 0, 0); DEFINE_OLEGUID(IID_IPolylineAdviseSink6, 0x00021110, 0, 0); /* * The same numbers are defined in OLEGUID.H as CLSID_StaticMetafile * and CLSID_StaticDib. Those will define the symbols but the actual * values are not in OLE2.LIB as all IIDs and other CLSIDs are. To * use the GUIDs, we have to define our own labels for them but still * using the same GUIDs. */ DEFINE_OLEGUID(CLSID_FreeMetafile, 0x00000315, 0, 0); DEFINE_OLEGUID(CLSID_FreeDib, 0x00000316, 0, 0); //GUIDS for Chapter 7 //Data Transfer Component Object DEFINE_OLEGUID(CLSID_DataTransferObject, 0x00021111, 0, 0); //Schmoo in chapter 10 uses CLSID_Schmoo2Figure above. //GUIDs for Chapter 11 //HSchmoo is registered under CLSID_Schmoo2Figure //Polyine DEFINE_OLEGUID(CLSID_Polyline11, 0x00021112, 0, 0); //GUIDs for Chapter 12 //LinksAssistant DEFINE_OLEGUID(CLSID_LinksAssistant, 0x00021113, 0, 0); //OLE 2.0 SDK forgot this one. DEFINE_OLEGUID(IID_IOleUILinkContainer, 0x00021114, 0, 0); #endif //_BOOKGUID_H_