Selaa lähdekoodia

* Initial import

yuri 22 vuotta sitten
vanhempi
commit
eb94ab00cb
1 muutettua tiedostoa jossa 242 lisäystä ja 0 poistoa
  1. 242 0
      rtl/os2/pmwp.pas

+ 242 - 0
rtl/os2/pmwp.pas

@@ -0,0 +1,242 @@
+{****************************************************************************
+
+    $Id$
+
+    This file is part of the Free Pascal run time library.
+    Copyrigth (c) 2003 by Yuri Prokushev ([email protected])
+
+    OS/2 Presentation Manager Workplace functions and types.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ ****************************************************************************}
+unit pmwp;
+
+interface
+
+uses
+  os2def, pmwin;
+
+//*** Common types *******************************************************/
+
+type
+  HOBJECT=Cardinal;
+
+//*** Object management calls ********************************************/
+
+//*** Standard object classes *****************************************/
+
+const
+  CCHMAXCLASS            = 3;      // Length of a classname
+
+  QC_First               = 0;      // Codes for OA_QueryContent
+  QC_Next                = 1;
+  QC_Last                = 2;
+
+  LOCATION_DESKTOP = PChar($FFFF0001); // Current Desktop
+         // use instead of <WP_DESKTOP>
+
+//*** An object's appearance (icon or bitmap or outline) **************/
+
+type
+  OBJECTIMAGE=record     // oimg
+    hptrObject: Cardinal;
+  end;
+  POBJECTIMAGE=^OBJECTIMAGE;
+
+//*** Class info structure returned by WinEnumObjectClasses ***********/
+type
+  POBJCLASS=^OBJCLASS;
+  OBJCLASS=record         // ocls
+    pNext: POBJCLASS;     // Null for the last structure..
+    pszClassName: PChar;  // Class name
+    pszModName: PChar;    // Module name
+  end;
+
+//*** Workplace object management functions ***************************/
+
+Function WinRegisterObjectClass(pszClassName,
+                                pszModName: PChar): Longbool; cdecl;
+    external 'PMWP' index 200;
+
+Function WinDeRegisterObjectClass(pszClassName: PChar): Longbool; cdecl;
+    external 'PMWP' index 201;
+
+Function WinReplaceObjectClass(pszOldClassName,
+                               pszNewClassName: PChar;
+                               fReplace: Longbool): Longbool; cdecl;
+    external 'PMWP' index 219;
+
+Function WinEnumObjectClasses(VAR apObjClass: OBJCLASS;
+                              VAR pulSize: Cardinal): Longbool; cdecl;
+    external 'PMWP' index 205;
+
+Function WinCreateObject(pszClassName,
+                         pszTitle,
+                         pszSetupString,
+                         pszLocation: PChar;
+                         ulFlags: Cardinal): HObject; cdecl;
+    external 'PMWP' index 281;
+
+const
+  CO_FAILIFEXISTS    = 0;
+  CO_REPLACEIFEXISTS = 1;
+  CO_UPDATEIFEXISTS  = 2;
+
+Function WinSetObjectData(aobject: HOBJECT;
+                          pszSetupString: PChar): Longbool; cdecl;
+    external 'PMWP' index 250;
+
+Function WinDestroyObject(aobject: HOBJECT): Longbool; cdecl;
+    external 'PMWP' index 251;
+
+Function WinQueryObject(pszObjectID: PChar): HObject; cdecl;
+    external 'PMWP' index 252;
+
+Function WinSaveObject(ahObject: HOBJECT;
+                       fAsync: Longbool): Longbool; cdecl;
+    external 'PMWP' index 285;
+
+Function WinOpenObject(ahObject: HOBJECT;
+                       ulView: Cardinal;
+                       Flag: Longbool): Longbool; cdecl;
+    external 'PMWP' index 286;
+
+Function WinMoveObject(hObjectofObject: HOBJECT;
+                       hObjectofDest: HOBJECT;
+                       ulReserved: Cardinal): HObject; cdecl;
+    external 'PMWP' index 287;
+
+Function WinCopyObject(hObjectofObject: HOBJECT;
+                       hObjectofDest: HOBJECT;
+                       ulReserved: Cardinal): HObject; cdecl;
+    external 'PMWP' index 288;
+
+Function WinCreateShadow(hObjectofObject: HOBJECT;
+                         hObjectofDest: HOBJECT;
+                         ulReserved: Cardinal): HObject; cdecl;
+    external 'PMWP' index 289;
+
+Function WinQueryActiveDesktopPathname(pszPathName: PChar;
+                                       ulSize: Cardinal): Longbool; cdecl;
+    external 'PMWP' index 262;
+
+Function WinQueryObjectPath(ahobject: HOBJECT;
+                            pszPathName: PChar;
+                            ulSize: Cardinal): Longbool; cdecl;
+    external 'PMWP' index 263;
+
+Function WinRestartWPDServer(fState: Longbool): Cardinal; cdecl;
+    external 'PMWP' index 463;
+
+Function WinIsWPDServerReady: Longbool; cdecl;
+    external 'PMWP' index 465;
+
+Function WinRestartSOMDD(fState: Longbool): Cardinal; cdecl;
+    external 'PMWP' index 464;
+
+Function WinIsSOMDDReady: Longbool; cdecl;
+    external 'PMWP' index 480;
+
+//*** Object settings notebook page insertion structure ******************/
+
+type
+  PAGEINFO=record     // pginf
+    cb: Cardinal;
+    hwndPage: HWnd;
+    pfnwp: proc;
+    resid: Cardinal;
+    pCreateParams: Pointer;
+    dlgid: Word;
+    usPageStyleFlags: Word;
+    usPageInsertFlags: Word;
+    usSettingsFlags: Word;
+    pszName: PChar;
+    idDefaultHelpPanel: Word;
+    usReserved2: Word;
+    pszHelpLibraryName: PChar;
+    pHelpSubtable: ^Word;   // PHELPSUBTABLE when PMHELP.H is included
+    hmodHelpSubtable: Cardinal;
+    ulPageInsertId: Cardinal;
+  end;
+  PPAGEINFO=^PAGEINFO;
+
+const
+  SETTINGS_PAGE_NUMBERS   = $01;
+
+//*** Utility apis +******************************************************/
+
+type
+  ICONPOS=record     // icp
+    ptlIcon: POINTL;                    // Location
+    szIdentity: Array[0..1-1] of Char;  // Object identity string
+  end;
+  PICONPOS=^ICONPOS;
+
+//*********************************************************************/
+Function WinSetFileIcon(pszFileName: PChar;
+                    var pIcon: ICONINFO): Longbool; cdecl;
+    external 'PMWP' index 210;
+
+Function WinFreeFileIcon(hptr: Cardinal): Longbool; cdecl;
+    external 'PMWP' index 216;
+
+Function WinLoadFileIcon(pszFileName: PChar;
+                         fPrivate: Longbool): Cardinal; cdecl;
+    external 'PMWP' index 209;
+
+Function WinStoreWindowPos(pszAppName,
+                           pszKeyName: PChar;
+                           ahwnd: HWND): Longbool; cdecl;
+    external 'PMWP' index 207;
+
+Function WinRestoreWindowPos(pszAppName,
+                             pszKeyName: PChar;
+                             ahwnd: HWND): Longbool; cdecl;
+    external 'PMWP' index 208;
+
+Function WinShutdownSystem(ahab: HAB;
+                           ahmq: HMQ): Longbool; cdecl;
+    external 'PMWP' index 149;
+
+implementation
+
+end.
+
+{
+// Not implemented/not documented APIs
+WinShutdownAndReboot    PMWP     152 ?
+WinShutdown             PMWP     153 ?
+OldWinCreateObject      PMWP     202 ?
+WinRestartWorkplace     PMWP     221 ?
+ShlGetUserWordPtr       PMWP     224 ?
+WinUnlockSystem         PMWP     282 ?
+WinLockupSystem         PMWP     283 ?
+WinNotebookButtonFromID PMWP     511 ?
+WinWaitForShell         PMWP     512 ?
+}
+
+{
+// Not founded indexes
+Function WinSetFileIconN(pszFileName: PChar
+                         pIcnInfo: PICONINFO;
+                         ulIconIndex: Cardinal): Longbool; cdecl;
+    external 'PMWP' index ???;
+
+Function WinLoadFileIconN(pszFileName: PChar;
+                          fPrivate: Longbool,
+                          ulIconIndex: Cardinal): Cardinal; cdecl;
+    external 'PMWP' index ???;
+}
+
+{
+$Log$
+Revision 1.1  2003-03-28 13:36:02  yuri
+  * Initial import
+
+}