home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / windde1.def < prev    next >
Text File  |  1994-05-03  |  6KB  |  139 lines

  1. DEFINITION MODULE WINDDE1;
  2.  
  3. (************************************************************************
  4.   OS/2 2.0 interface for Presentation Manager Dynamic Data Exchange.
  5.  
  6.   Copyright (c) 1992 by Juergen Neuhoff
  7. *************************************************************************)
  8.  
  9. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  10. (*$CDECL+    C-style procedures                                         *)
  11. (*$A         default alignment for record fields                        *)
  12.  
  13. FROM   OS2DEF  IMPORT TYPEPREFIX, HWND, PSZ;
  14. FROM   WINDEF  IMPORT MRESULT;
  15.  
  16. CONST (* DDE standard system topic and item strings *)
  17.   SZDDESYS_TOPIC               = "System";
  18.   SZDDESYS_ITEM_TOPICS         = "Topics";
  19.   SZDDESYS_ITEM_SYSITEMS       = "SysItems";
  20.   SZDDESYS_ITEM_RTNMSG         = "ReturnMessage";
  21.   SZDDESYS_ITEM_STATUS         = "Status";
  22.   SZDDESYS_ITEM_FORMATS        = "Formats";
  23.   SZDDESYS_ITEM_SECURITY       = "Security";
  24.   SZDDESYS_ITEM_ITEMFORMATS    = "ItemFormats";
  25.   SZDDESYS_ITEM_HELP           = "Help";
  26.   SZDDESYS_ITEM_PROTOCOLS      = "Protocols";
  27.   SZDDESYS_ITEM_RESTART        = "Restart";
  28.  
  29. CONST
  30.   DDECTXT_CASESENSITIVE        = 0001H;
  31.  
  32. TYPE (* Dynamic Data Exchange (DDE) Structure Declarations *)
  33.   CONVCONTEXT                  = RECORD          (* cctxt *)
  34.     CASE                         : TYPEPREFIX OF
  35.     | TRUE                       :
  36.       cb                         : LONGCARD;     (* TSIZE(CONVCONTEXT) *)
  37.       fsContext                  : LONGCARD;
  38.       idCountry                  : LONGCARD;
  39.       usCodepage                 : LONGCARD;
  40.       usLangID                   : LONGCARD;
  41.       usSubLangID                : LONGCARD;
  42.     | FALSE                      :
  43.       Size                       : LONGCARD;     (* TSIZE(CONVCONTEXT) *)
  44.       ContextFlags               : LONGCARD;
  45.       Country                    : LONGCARD;
  46.       CodePage                   : LONGCARD;
  47.       LangId                     : LONGCARD;
  48.       SubLangId                  : LONGCARD;
  49.     END;                         END;
  50.   PCONVCONTEXT                 = POINTER TO CONVCONTEXT;
  51.   DDEINIT                      = RECORD          (* ddei *)
  52.     CASE                         : TYPEPREFIX OF
  53.     | TRUE                       :
  54.       cb                         : LONGCARD;     (* TSIZE(DDEINIT) *)
  55.       pszAppName                 : PSZ;
  56.       pszTopic                   : PSZ;
  57.       offConvContext             : LONGCARD;
  58.     | FALSE                      :
  59.       Size                       : LONGCARD;     (* TSIZE(DDEINIT) *)
  60.       AppName                    : PSZ;
  61.       Topic                      : PSZ;
  62.       ConvContextOffset          : LONGCARD;
  63.     END;                         END;
  64.   PDDEINIT                     = POINTER TO DDEINIT;
  65.   (*$A2 WORD alignment for record fields >= 2 bytes     *)
  66.   DDESTRUCT                    = RECORD          (* dde *)
  67.     CASE                         : TYPEPREFIX OF
  68.     | TRUE                       :
  69.       cbData                     : LONGCARD;
  70.       fsStatus                   : CARDINAL;
  71.       usFormat                   : CARDINAL;
  72.       offszItemName              : CARDINAL;
  73.       offabData                  : CARDINAL;
  74.     | FALSE                      :
  75.       DataSize                   : LONGCARD;
  76.       Status                     : CARDINAL;
  77.       Format                     : CARDINAL;
  78.       ItemNameOffset             : CARDINAL;
  79.       DataBytesOffset            : CARDINAL;
  80.     END;                         END;
  81.   PDDESTRUCT                   = POINTER TO DDESTRUCT;
  82.   (*$A restore default alignment for record fields      *)
  83.  
  84. CONST (* DDE constants for wStatus field *)
  85.   DDE_FACK                     = 0001H;
  86.   DDE_FBUSY                    = 0002H;
  87.   DDE_FNODATA                  = 0004H;
  88.   DDE_FACKREQ                  = 0008H;
  89.   DDE_FRESPONSE                = 0010H;
  90.   DDE_NOTPROCESSED             = 0020H;
  91.   DDE_FRESERVED                = 00C0H;
  92.   DDE_FAPPSTATUS               = 0FF00H;
  93.  
  94. CONST (* old DDE public formats - new ones are CF_ constants *)
  95.   DDEFMT_TEXT                  = 0001H;
  96.  
  97. PROCEDURE WinDdeInitiate
  98. ( ClientWinHandle              : HWND;
  99.   AppName                      : ARRAY OF CHAR;
  100.   TopicName                    : ARRAY OF CHAR;
  101.   VAR Context                  : CONVCONTEXT
  102. )                              : BOOLEAN;
  103.  
  104. PROCEDURE WinDdeRespond
  105. ( ClientWinHandle              : HWND;
  106.   ServerWinHandle              : HWND;
  107.   AppName                      : ARRAY OF CHAR;
  108.   TopicName                    : ARRAY OF CHAR;
  109.   VAR Context                  : CONVCONTEXT
  110. )                              : MRESULT;
  111.  
  112. PROCEDURE WinDdePostMsg
  113. ( ToWinHandle                  : HWND;
  114.   FromWinHandle                : HWND;
  115.   MsgId                        : LONGCARD;
  116.   VAR Data                     : DDESTRUCT;
  117.   Options                      : LONGCARD
  118. )                              : BOOLEAN;
  119.  
  120. CONST
  121.   DDEPM_RETRY                  = 00000001H;
  122.   DDEPM_NOFREE                 = 00000002H;
  123.  
  124. CONST (* Dynamic Data Exchange (DDE) Messages *)
  125.   WM_DDE_FIRST                 = 00A0H;
  126.   WM_DDE_INITIATE              = 00A0H;
  127.   WM_DDE_REQUEST               = 00A1H;
  128.   WM_DDE_ACK                   = 00A2H;
  129.   WM_DDE_DATA                  = 00A3H;
  130.   WM_DDE_ADVISE                = 00A4H;
  131.   WM_DDE_UNADVISE              = 00A5H;
  132.   WM_DDE_POKE                  = 00A6H;
  133.   WM_DDE_EXECUTE               = 00A7H;
  134.   WM_DDE_TERMINATE             = 00A8H;
  135.   WM_DDE_INITIATEACK           = 00A9H;
  136.   WM_DDE_LAST                  = 00AFH;
  137.  
  138. END WINDDE1.
  139.