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

Windows编程

开发平台:

Visual C++

  1. /*+==========================================================================
  2.   File:      COMOBJ.H
  3.   Summary:   Include file for the COMOBJ.DLL dynamic link library that
  4.              provides access to the services of the COMOBJ DLL.  This
  5.              include file is meant to serve double duty as providing
  6.              general set of macros that (1) when included in a COMOBJ
  7.              implementation file wherein it provides a STDENTRY macro for
  8.              the definition of exported functions and (2) when included in
  9.              an app that uses these function calls it provides a STDENTRY
  10.              macro for the declaration of imported functions.  The default
  11.              behavior is to serve consumer apps that import the functions
  12.              in the providing DLL.  Prior to the #include of this COMOBJ.H
  13.              if _DLLEXPORT_ is #defined, the STDENTRY, STDENTRY_ and
  14.              DLLENTRY macro expansion bahavior is directed to serve the
  15.              COMOBJ itself in defining the functions as exported. If
  16.              _DLLEXPORT_ is not defined and _LOCALCALLS_ is defined before
  17.              the #include then the STDENTRY macro reduces to externs for
  18.              support of local calls within the modules of the DLL.
  19.              This .H file is written to be #included in either C or C++
  20.              programs.
  21.              For a comprehensive tutorial code tour of COMOBJ's
  22.              contents and offerings see the tutorial COMOBJ.HTM file.
  23.              For more specific technical details on the internal workings
  24.              see the comments dispersed throughout the COMOBJ source code.
  25.   Classes:   none
  26.   Functions: none
  27.   Origin:    10-3-97: atrent - Editor-inheritance from DLLSKEL.H in
  28.                the DLLSKEL Tutorial Code Sample. [Revised]
  29. ----------------------------------------------------------------------------
  30.   This file is part of the Microsoft COM Tutorial Code Samples.
  31.   Copyright (C) Microsoft Corporation, 1997.  All rights reserved.
  32.   This source code is intended only as a supplement to Microsoft
  33.   Development Tools and/or on-line documentation.  See these other
  34.   materials for detailed information regarding Microsoft code samples.
  35.   THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  36.   KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  37.   IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  38.   PARTICULAR PURPOSE.
  39. ==========================================================================+*/
  40. #if !defined(COMOBJ_H)
  41. #define COMOBJ_H
  42. #if !defined(RC_INCLUDE)
  43. #if !defined(_DLLEXPORT_)
  44. // If _DLLEXPORT_ is not defined then the default is to import.
  45. #if defined(__cplusplus)
  46. #if defined(_LOCALCALLS_)
  47. #define DLLENTRY extern "C"
  48. #else
  49. #define DLLENTRY extern "C" __declspec(dllimport)
  50. #endif
  51. #else   // __cplusplus
  52. #if defined(_LOCALCALLS_)
  53. #define DLLENTRY extern
  54. #else
  55. #define DLLENTRY extern __declspec(dllimport)
  56. #endif
  57. #endif  // __cplusplus
  58. #define STDENTRY DLLENTRY HRESULT WINAPI
  59. #define STDENTRY_(type) DLLENTRY type WINAPI
  60. // Here is the list of service APIs offered by the DLL (using the
  61. // appropriate entry API declaration macros just #defined above).
  62. STDENTRY_(BOOL) ComObjInitMsgLog(
  63.                   CMsgLog* pMsgLog);
  64. STDENTRY_(BOOL) ComObjAboutBox (HWND);
  65. STDENTRY CreateCar(
  66.            IUnknown* pUnkOuter,
  67.            REFIID riid,
  68.            PPVOID ppv);
  69. STDENTRY CreateUtilityCar(
  70.            IUnknown* pUnkOuter,
  71.            REFIID riid,
  72.            PPVOID ppv);
  73. STDENTRY CreateCruiseCar(
  74.            IUnknown* pUnkOuter,
  75.            REFIID riid,
  76.            PPVOID ppv);
  77. #else  // _DLLEXPORT_
  78. // Else if _DLLEXPORT_ is defined then we've been told to export.
  79. #if defined(__cplusplus)
  80. #if defined(_LOCALCALLS_)
  81. #define DLLENTRY extern "C"
  82. #else
  83. #define DLLENTRY extern "C" __declspec(dllexport)
  84. #endif
  85. #else   // __cplusplus
  86. #if defined(_LOCALCALLS_)
  87. #define DLLENTRY
  88. #else
  89. #define DLLENTRY __declspec(dllexport)
  90. #endif
  91. #endif  // __cplusplus
  92. #define STDENTRY DLLENTRY HRESULT WINAPI
  93. #define STDENTRY_(type) DLLENTRY type WINAPI
  94. #endif // _DLLEXPORT_
  95. #endif // RC_INCLUDE
  96. #endif // COMOBJ_H