COSMO.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:6k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * COSMO.H
  3.  *
  4.  * Definitions and function prototypes for the OLE Cosmo Server.
  5.  *
  6.  * Copyright(c) Microsoft Corp. 1992-1994 All Rights Reserved
  7.  * Win32 version, January 1994
  8.  */
  9. #include "polyline.h"
  10. //Resource identifiers.
  11. #define IDR_MENU            1
  12. #define IDR_ACCELERATORS    1
  13. #define IDD_ABOUT           1
  14. //POLYLINE Window ID
  15. #define ID_POLYLINE         10
  16. //Menu command identifiers.
  17. #define IDM_FILENEW         100
  18. #define IDM_FILEOPEN        101
  19. #define IDM_FILESAVE        102
  20. #define IDM_FILESAVEAS      103
  21. #define IDM_FILEIMPORT      104
  22. #define IDM_FILEEXIT        110
  23. #define IDM_EDITUNDO        200
  24. #define IDM_EDITCUT         201
  25. #define IDM_EDITCOPY        202
  26. #define IDM_EDITPASTE       203
  27. #define IDM_HELPABOUT       300
  28. //File-related string lengths.
  29. #define CCHPATHMAX          256
  30. #define CCHFILENAMEMAX      15
  31. /*
  32.  * CSTRINGS is number of strings to load from the stringtable.
  33.  * CCHSTRINGMAX is the maximum length that any string is allowed.
  34.  *
  35.  * What will happen is that CSTRINGS*CCHSTRINGMAX is allocated to begin
  36.  * with and the stringtable is loaded into that space, Only using what's
  37.  * required for each string.  After that, the space is reallocated to
  38.  * be as small as possible.
  39.  */
  40. #define CSTRINGS            30
  41. #define CCHSTRINGMAX        80
  42. //String ID values.  Keep in SEQUENTIAL order and use 0-n
  43. #define IDS_CAPTION         0
  44. #define IDS_CLASSCOSMO      1
  45. #define IDS_CLASSPOLYLINE   2
  46. #define IDS_FILEDIRTY       3
  47. #define IDS_DEFEXT          4
  48. #define IDS_FILEOPENFILTER  5
  49. #define IDS_FILEOPEN        6
  50. #define IDS_FILESAVEAS      7
  51. #define IDS_FILEIMPORT      8
  52. #define IDS_FULLNAME        9
  53. #define IDS_FIGURE          10
  54. #define IDS_DOTEXT          11
  55. #define IDS_MODULE          12
  56. #define IDS_UNTITLED        13
  57. #define IDS_EMPTY           14
  58. #define IDS_VERBEDIT        15
  59. #define IDS_UPDATE          16
  60. #define IDS_SAVE            17
  61. #define IDS_SAVEAS          18
  62. #define IDS_SAVECOPYAS      19
  63. #define IDS_EXIT            20
  64. #define IDS_EXITANDRETURN   21
  65. #define IDS_EMBEDDING       22
  66. #define IDS_NATIVE          23
  67. #define IDS_DATAFORMATS     24
  68. #define IDS_STDFILEEDITING  25
  69. #define IDS_OWNERLINK       26
  70. #define IDS_OBJECTLINK      27
  71. #define IDS_CLOSEALERT1     28
  72. #define IDS_CLOSEALERT2     29
  73. /*
  74.  * Structure holding the "global" variables.  Creating a structure with
  75.  * has several advantages over separately declaring each field as a
  76.  * global:
  77.  *  1.  Keep source files clean.
  78.  *  2.  Eliminates need for many "extern" declarations.
  79.  *  3.  A single pointer to this structure can be passed throughout
  80.  *      the application, hiding the fact that it's global.
  81.  *  4.  Allows the variables to be allocated dynamically or from
  82.  *      different memory than the application's DS.
  83.  *  5.  Any reference to these variables will have a pointer or
  84.  *      structure dereference, which points to where the variable
  85.  *      actually is defined.  Separate globals are not distinguishable
  86.  *      from locals, making code harder to read.
  87.  *
  88.  * Note that fNoDirty is used from OLEOBJ.C in the ObjShow method
  89.  * to prevent setting fDirty when the window is sized from ObjShow.
  90.  */
  91. typedef struct
  92.     {
  93.     HWND        hWnd;               //Top-level application window.
  94.     HWND        hWndPolyline;       //Editor window.
  95.     HINSTANCE   hInst;              //Application instance handle.
  96.     LPSTR       pszCmdLine;         //Command line passed to WinMain.
  97.     UINT        nCmdShow;           //Initial ShowWindow command.
  98.     HLOCAL      hStringMem;         //Stringtable memory.
  99.     UINT        cfCosmo;            //Private clipboard format.
  100.     BOOL        fDirty;             //Is file dirty?
  101.     BOOL        fNoDirty;           //If TRUE, don't touch dirty flag.
  102.     BOOL        fOpenFile;          //FALSE if File/New used until saved.
  103.     char        szFile[CCHPATHMAX]; //Filename for Save command.
  104.     BOOL        fOLE;               //Indicates if we are linked/embedded.
  105.     } GLOBALS;
  106. typedef GLOBALS FAR * LPGLOBALS;
  107. //External:
  108. extern char NEAR *rgpsz[CSTRINGS];
  109. extern LPGLOBALS pGlob;
  110. //Versioning.
  111. #define VERSIONMAJOR        1
  112. #define VERSIONMINOR        0
  113. /*
  114.  * Function prototypes, organized by source file.  Any small definition
  115.  * required by only one source file is also included here under the
  116.  * same heading.
  117.  */
  118. //CLIP.C
  119. BOOL      WINAPI FEditCut(LPGLOBALS);
  120. BOOL      WINAPI FEditCopy(LPGLOBALS, BOOL);
  121. BOOL      WINAPI FEditPaste(LPGLOBALS);
  122. HGLOBAL   WINAPI HGetPolyline(HWND);
  123. HGLOBAL   WINAPI HGetMetafilePict(HWND);
  124. HGLOBAL   WINAPI HGetBitmap(HWND);
  125. //COMMDLG.C
  126. BOOL     WINAPI FSaveOpenDialog(HWND, HINSTANCE, LPSTR, LPSTR, LPSTR, LPSTR, BOOL);
  127. //EXIT.C
  128. BOOL     WINAPI FApplicationExit(LPGLOBALS);
  129. //FILE.C
  130. BOOL     WINAPI FDirtySet(BOOL);
  131. BOOL     WINAPI FCleanVerify(LPGLOBALS);
  132. BOOL     WINAPI FFileNew(LPGLOBALS);
  133. BOOL     WINAPI FFileOpen(LPGLOBALS, BOOL);
  134. BOOL     WINAPI FFileSave(LPGLOBALS);
  135. BOOL     WINAPI FFileSaveAs(LPGLOBALS);
  136. BOOL     WINAPI FFileExit(LPGLOBALS);
  137. //FILEIO.C
  138. BOOL     WINAPI FCosFileRead(LPGLOBALS, LPSTR, LPPOLYLINE);
  139. BOOL     WINAPI FCosFileWrite(LPGLOBALS, LPSTR, LPPOLYLINE);
  140. //INIT.C
  141. BOOL     WINAPI FApplicationInit(LPGLOBALS, HINSTANCE);
  142. BOOL     WINAPI FClassRegister(LPGLOBALS, HINSTANCE);
  143. BOOL     WINAPI FFileInit(LPGLOBALS);
  144. HLOCAL   WINAPI HLoadAppStrings(LPGLOBALS);
  145. HLOCAL   WINAPI HListParse(LPSTR);
  146. LPSTR    PASCAL PszWhiteSpaceScan(LPSTR, BOOL);
  147. //MISC.C
  148. void     WINAPI WindowTitleSet(HWND, LPSTR);
  149. void     WINAPI RectConvertToHiMetric(HWND, LPRECT);
  150. void     WINAPI RectConvertToDevice(HWND, LPRECT);
  151. //COSMO.C
  152. LRESULT  WINAPI CosmoWndProc(HWND, UINT, WPARAM, LPARAM);
  153. BOOL     WINAPI AboutProc(HWND, UINT, WPARAM, LPARAM);