home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / ole / mishapes / shapes.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-01-17  |  5.1 KB  |  175 lines

  1. #ifdef  TEST
  2. #define     PROBE_BUSY(a) {\
  3.     extern  BOOL    a;     \
  4.     a = !a;                \
  5.     if (a)                 \
  6.         return ECD_BUSY;   \
  7. }
  8. #else
  9. #define     PROBE_BUSY(a)
  10. #endif
  11.  
  12. /* file menu items */
  13.  
  14. #define     IDM_NEW      100
  15. #define     IDM_OPEN     101
  16. #define     IDM_SAVE     102
  17. #define     IDM_SAVEAS   103
  18. #define     IDM_PRINT    104
  19. #define     IDM_EXIT     105
  20. #define     IDM_ABOUT    106
  21. #define     IDM_NEWITEM  107
  22.  
  23. /* edit menu items */
  24.  
  25. #define     IDM_UNDO     200
  26. #define     IDM_CUT      201
  27. #define     IDM_COPY     202
  28. #define     IDM_PASTE    203
  29. #define     IDM_CLEAR    204
  30.  
  31. /* Control IDs */
  32.  
  33. #define     IDC_FILENAME  400
  34. #define     IDC_EDIT      401
  35. #define     IDC_FILES     402
  36. #define     IDC_PATH      403
  37. #define     IDC_LISTBOX   404
  38.  
  39.  
  40. #define     IDM_RED       500
  41. #define     IDM_GREEN     501
  42. #define     IDM_BLUE      502
  43. #define     IDM_BLACK     503
  44. #define     IDM_YELLOW    504
  45.  
  46.  
  47. #define     IDM_RECT                600
  48. #define     IDM_ROUNDRECT           601
  49. #define     IDM_HALLOWRECT          602
  50. #define     IDM_HALLOWROUNDRECT     603
  51.  
  52.  
  53.  
  54. int PASCAL WinMain(HANDLE, HANDLE, LPSTR, int);
  55. BOOL InitApplication(HANDLE);
  56. BOOL InitInstance(HANDLE, int);
  57. void DeleteInstance (void);
  58. long FAR PASCAL MainWndProc(HWND, unsigned, WORD, LONG);
  59. long FAR PASCAL DocWndProc(HWND, unsigned, WORD, LONG);
  60. long FAR PASCAL ItemWndProc(HWND, unsigned, WORD, LONG);
  61. BOOL FAR PASCAL About(HWND, unsigned, WORD, LONG);
  62. HANDLE FAR PASCAL OpenDlg(HWND, unsigned, WORD, LONG);
  63. HANDLE FAR PASCAL SaveDlg(HWND, unsigned, WORD, LONG);
  64.  
  65.  
  66. void SeparateFile(HWND, LPSTR, LPSTR, LPSTR);
  67. void UpdateListBox(HWND);
  68. void AddExt(PSTR, PSTR);
  69. void ChangeDefExt(PSTR, PSTR);
  70.  
  71.  
  72.  
  73.  
  74. // server related stuff.
  75. typedef struct  _SRVR  *PSRVR;
  76. typedef struct  _SRVR  FAR *LPSRVR;
  77.  
  78.  
  79. typedef  struct _SRVR {
  80.     ECDSERVER     ecdsrvr;
  81.     HANDLE        hsrvr;          // handle to our server
  82.     LHSERVER      lhsrvr;         // registration handle
  83.     HWND          hwnd;           // corresponding server window
  84. }SRVR;
  85.  
  86.  
  87. void            DeleteServer (PSRVR);
  88. BOOL            InitServer (HWND, HANDLE);
  89. int FAR PASCAL SrvrOpen (LPECDSERVER, LHDOCUMENT, LPSTR, LPECDDOCUMENT FAR *);
  90. int FAR PASCAL SrvrCreate (LPECDSERVER, LHDOCUMENT, LPSTR, LPSTR, LPECDDOCUMENT FAR *);
  91. int FAR PASCAL SrvrCreateFromTemplate (LPECDSERVER, LHDOCUMENT, LPSTR, LPSTR, LPSTR, LPECDDOCUMENT FAR *);
  92. int FAR PASCAL SrvrEdit (LPECDSERVER, LHDOCUMENT, LPSTR, LPSTR, LPECDDOCUMENT FAR *);
  93. int FAR PASCAL SrvrExit (LPECDSERVER);
  94. int FAR PASCAL SrvrRelease (LPECDSERVER);
  95.  
  96.  
  97. // server related stuff.
  98. typedef struct  _DOC  *PDOC;
  99.  
  100. typedef  struct _DOC {
  101.     ECDDOCUMENT      ecddoc;
  102.     HANDLE           hdoc;          // handle to our server
  103.     LHDOCUMENT       lhdoc;         // registration handle
  104.     HWND             hwnd;          // corresponding server window
  105.     ATOM             aName;         // docmnet name.
  106.     POINT            ptAnchor;      // anchor point
  107. }DOC ;
  108.  
  109. int FAR PASCAL  DocSave (LPECDDOCUMENT);
  110. int FAR PASCAL  DocClose (LPECDDOCUMENT);
  111. int FAR PASCAL  DocRelease (LPECDDOCUMENT);
  112. int FAR PASCAL  DocGetObject (LPECDDOCUMENT, LPSTR, LPECDOBJECT FAR *, LPECDCLIENT);
  113. int FAR PASCAL  DocSetDocDimensions (LPECDDOCUMENT, LPRECT);
  114. int FAR PASCAL  DocSetHostNames (LPECDDOCUMENT, LPSTR, LPSTR);
  115.  
  116.  
  117. int    ChangeDocName (PDOC, LPSTR);
  118. PDOC   InitDoc (HWND, LHDOCUMENT);
  119.  
  120.  
  121. typedef struct _ITEM     *PITEM;
  122. typedef struct _ITEM FAR *LPITEM;
  123.  
  124.  
  125. typedef struct _ITEM  {   /*ECDOBJECT*/
  126.     ECDOBJECT   ecdobject;
  127.     HANDLE      hitem;
  128.     LPECDCLIENT lpecdclient;
  129.     HWND        hwnd;
  130.     ATOM        aName;
  131.     int         cmdShape;
  132.     int         cmdColor;
  133.     int         width;  /* Added these two fields to test the loading of */
  134.     int         height; /* rendering (based on native data) Dll */
  135.     int         ref;
  136.     char        name[30];
  137. }ITEM;
  138.  
  139. void    SetItemName (PITEM, LPSTR);
  140. void    SetNewItemName (PITEM);
  141. HANDLE  GetNative (PITEM);
  142. HBITMAP GetBitmap (PITEM);
  143. HANDLE  GetPicture (PITEM);
  144. HANDLE  GetLink (PITEM);
  145.  
  146.  
  147. int FAR PASCAL  ItemOpen (LPECDOBJECT);
  148. int FAR PASCAL  ItemDelete (LPECDOBJECT);
  149. int FAR PASCAL  ItemGetData (LPECDOBJECT, WORD, LPHANDLE);
  150. int FAR PASCAL  ItemSetData (LPECDOBJECT, WORD, HANDLE);
  151. int FAR PASCAL  ItemSetTargetDevice (LPECDOBJECT, HANDLE);
  152. ECDCLIPFORMAT   FAR PASCAL ItemEnumFormats (LPECDOBJECT, ECDCLIPFORMAT);
  153.  
  154.  
  155. void    DrawDragRect (HWND);
  156. PDOC    CreateNewDoc (PSRVR, LONG, LPSTR);
  157. void    CutCopyItem (HWND);
  158. void    PaintItem (HWND);
  159. PITEM   CreateNewItem (PDOC, int, int, BOOL);
  160. BOOL    DestroyItem (HWND);
  161. PDOC    CreateDocFromFile (PSRVR, LPSTR, LONG);
  162. BOOL    SaveDocIntoFile (PDOC, LPSTR);
  163. void    DeleteDoc (PDOC);
  164. void    FreeVTbls (void);
  165. void    InitVTbls (void);
  166.  
  167.  
  168. void    SendDocChangeMsg (PDOC, WORD);
  169. void    SendDocRenameMsg (PSRVR, WORD);
  170. void    SendItemChangeMsg (PITEM, WORD);
  171. void    SendSrvrChangeMsg (PSRVR, WORD);
  172. BOOL    ProcessCmdLine (HWND, LPSTR);
  173. void    ReSizeAllItems (HWND, int, int);
  174. void    ReSizeAllDocs (HWND, int, int);
  175.