home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mmpm21tk.zip / TK / ULIOT / IODLL.C < prev    next >
C/C++ Source or Header  |  1993-04-15  |  5KB  |  99 lines

  1. /*************************START OF SPECIFICATIONS *************************/
  2. /* SOURCE FILE NAME:  IODLL.C                                             */
  3. /*                                                                        */
  4. /* DESCRIPTIVE NAME: File Format IO Proc DLL Init/Term                    */
  5. /*                                                                        */
  6. /* COPYRIGHT:     IBM - International Business Machines                   */
  7. /*            Copyright (c) IBM Corporation  1991, 1992, 1993             */
  8. /*                        All Rights Reserved                             */
  9. /*                                                                        */
  10. /* STATUS: OS/2 Release 2.0                                               */
  11. /*                                                                        */
  12. /*                                                                        */
  13. /************************* END OF SPECIFICATIONS **************************/
  14.  
  15. #include        <stdio.h>
  16.  
  17. #define         INCL_DOS                       /* #define  INCL_DOSPROCESS. */
  18. #define         INCL_ERRORS
  19. #define         INCL_WIN
  20. #define         INCL_GPI
  21. #include        <os2.h>                        /* OS/2 headers.             */
  22. #include        <pmbitmap.h>
  23.  
  24. #define         INCL_OS2MM
  25. #define         INCL_MMIO_CODEC
  26. #define         INCL_MMIO_DOSIOPROC
  27. #include        <os2me.h>                      /* Multi-Media IO extensions.*/
  28. #include        <hhpheap.h>
  29. #include        <ioi.h>
  30.  
  31.  
  32. /********************************************************************/
  33. /*  DLL Global Process Instance Data - one copy per each process    */
  34. /********************************************************************/
  35. HMTX      hmtxGlobalHeap = (HMTX)0;   // Global heap access
  36. HHUGEHEAP hheap = 0L;
  37. ULONG     ulBufferLength = DEFAULTBUFFERSIZE;
  38. ULONG     ulNumColors   = 0;
  39.  
  40.  
  41. /************************** START OF SPECIFICATIONS *************************/
  42. /*                                                                          */
  43. /* SUBROUTINE NAME: _DLL_InitTerm                                           */
  44. /*                                                                          */
  45. /* DESCRIPTIVE NAME: DLL initialization/Termination routine                 */
  46. /*                                                                          */
  47. /* FUNCTION: This function is executed by OS/2 at DLL load time and DLL     */
  48. /*           unload time.                                                   */
  49. /*                                                                          */
  50. /* NOTES: None                                                              */
  51. /*                                                                          */
  52. /* ENTRY POINT: _DLL_InitTerm                                               */
  53. /*   LINKAGE:   CALL FAR (00:32)                                            */
  54. /*                                                                          */
  55. /* INPUT:                                                                   */
  56. /*              HMODULE hmod     - DLL module handle                        */
  57. /*              ULONG   fTerm    - Init/Term flag                           */
  58. /*                                                                          */
  59. /* EXIT-NORMAL:                                                             */
  60. /*              TRUE (1)                                                    */
  61. /*                                                                          */
  62. /* EXIT-ERROR:                                                              */
  63. /*              FALSE (0)                                                   */
  64. /*                                                                          */
  65. /* SIDE EFFECTS:                                                            */
  66. /*                                                                          */
  67. /*************************** END OF SPECIFICATIONS **************************/
  68. #pragma linkage (_DLL_InitTerm, system)
  69.  
  70. unsigned long _DLL_InitTerm ( ULONG hmod,
  71.                               ULONG fTerm )
  72. {
  73.    LONG   rc= 1L;
  74.  
  75.    if(!fTerm) {
  76.       if(_CRT_init()) {
  77.          return(0L);
  78.          }
  79.  
  80.       if (rc = DosCreateMutexSem(NULL, &hmtxGlobalHeap, DC_SEM_SHARED, FALSE)) {
  81.          return(0L);
  82.          }
  83.  
  84.       hheap = HhpCreateHeap((ULONG)HEAP_SIZE,(USHORT)0L);
  85.       if (hheap == NULL) {
  86.           return(0L);
  87.           }
  88.       rc = 1L;
  89.       }
  90.  
  91.  
  92.    if (fTerm) {    /* Initalize Terminate ? */
  93.       HhpDestroyHeap(hheap);
  94.       DosCloseMutexSem(hmtxGlobalHeap);
  95.       }
  96.  
  97.    return(rc);
  98. }
  99.