⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmole2.pas

📁 一套及时通讯的原码
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  OLEMISC_ISLINKOBJECT                 = 64;
  {$IFDEF BCB} {$EXTERNALSYM OLEMISC_INSIDEOUT} {$ENDIF}
  OLEMISC_INSIDEOUT                = 128;
  {$IFDEF BCB} {$EXTERNALSYM OLEMISC_ACTIVATEWHENVISIBLE} {$ENDIF}
  OLEMISC_ACTIVATEWHENVISIBLE        = 256;
  {$IFDEF BCB} {$EXTERNALSYM OLEMISC_RENDERINGISDEVICEINDEPENDENT} {$ENDIF}
  OLEMISC_RENDERINGISDEVICEINDEPENDENT = 512;

  {$IFDEF BCB} {$EXTERNALSYM OLECLOSE_SAVEIFDIRTY} {$ENDIF}
  OLECLOSE_SAVEIFDIRTY = 0;
  {$IFDEF BCB} {$EXTERNALSYM OLECLOSE_NOSAVE} {$ENDIF}
  OLECLOSE_NOSAVE      = 1;
  {$IFDEF BCB} {$EXTERNALSYM OLECLOSE_PROMPTSAVE} {$ENDIF}
  OLECLOSE_PROMPTSAVE  = 2;

  {$IFDEF BCB} {$EXTERNALSYM OLERENDER_NONE} {$ENDIF}
  OLERENDER_NONE   = 0;
  {$IFDEF BCB} {$EXTERNALSYM OLERENDER_DRAW} {$ENDIF}
  OLERENDER_DRAW   = 1;
  {$IFDEF BCB} {$EXTERNALSYM OLERENDER_FORMAT} {$ENDIF}
  OLERENDER_FORMAT = 2;
  {$IFDEF BCB} {$EXTERNALSYM OLERENDER_ASIS} {$ENDIF}
  OLERENDER_ASIS   = 3;

  {$IFDEF BCB} {$EXTERNALSYM OLEUPDATE_ALWAYS} {$ENDIF}
  OLEUPDATE_ALWAYS = 1;
  {$IFDEF BCB} {$EXTERNALSYM OLEUPDATE_ONCALL} {$ENDIF}
  OLEUPDATE_ONCALL = 3;

  {$IFDEF BCB} {$EXTERNALSYM OLELINKBIND_EVENIFCLASSDIFF} {$ENDIF}
  OLELINKBIND_EVENIFCLASSDIFF = 1;

  {$IFDEF BCB} {$EXTERNALSYM BINDSPEED_INDEFINITE} {$ENDIF}
  BINDSPEED_INDEFINITE = 1;
  {$IFDEF BCB} {$EXTERNALSYM BINDSPEED_MODERATE} {$ENDIF}
  BINDSPEED_MODERATE   = 2;
  {$IFDEF BCB} {$EXTERNALSYM BINDSPEED_IMMEDIATE} {$ENDIF}
  BINDSPEED_IMMEDIATE  = 3;

  {$IFDEF BCB} {$EXTERNALSYM OLECONTF_EMBEDDINGS} {$ENDIF}
  OLECONTF_EMBEDDINGS  = 1;
  {$IFDEF BCB} {$EXTERNALSYM OLECONTF_LINKS} {$ENDIF}
  OLECONTF_LINKS   = 2;
  {$IFDEF BCB} {$EXTERNALSYM OLECONTF_OTHERS} {$ENDIF}
  OLECONTF_OTHERS  = 4;
  {$IFDEF BCB} {$EXTERNALSYM OLECONTF_ONLYUSER} {$ENDIF}
  OLECONTF_ONLYUSER  = 8;
  {$IFDEF BCB} {$EXTERNALSYM OLECONTF_ONLYIFRUNNING} {$ENDIF}
  OLECONTF_ONLYIFRUNNING = 16;

  {$IFDEF BCB} {$EXTERNALSYM DROPEFFECT_NONE} {$ENDIF}
  DROPEFFECT_NONE   = 0;
  {$IFDEF BCB} {$EXTERNALSYM DROPEFFECT_COPY} {$ENDIF}
  DROPEFFECT_COPY   = 1;
  {$IFDEF BCB} {$EXTERNALSYM DROPEFFECT_MOVE} {$ENDIF}
  DROPEFFECT_MOVE   = 2;
  {$IFDEF BCB} {$EXTERNALSYM DROPEFFECT_LINK} {$ENDIF}
  DROPEFFECT_LINK   = 4;
  {$IFDEF BCB} {$EXTERNALSYM DROPEFFECT_SCROLL} {$ENDIF}
  DROPEFFECT_SCROLL = $80000000;

  {$IFDEF BCB} {$EXTERNALSYM DD_DEFSCROLLINSET} {$ENDIF}
  DD_DEFSCROLLINSET    = 11;
  {$IFDEF BCB} {$EXTERNALSYM DD_DEFSCROLLDELAY} {$ENDIF}
  DD_DEFSCROLLDELAY    = 50;
  {$IFDEF BCB} {$EXTERNALSYM DD_DEFSCROLLINTERVAL} {$ENDIF}
  DD_DEFSCROLLINTERVAL = 50;
  {$IFDEF BCB} {$EXTERNALSYM DD_DEFDRAGDELAY} {$ENDIF}
  DD_DEFDRAGDELAY      = 200;
  {$IFDEF BCB} {$EXTERNALSYM DD_DEFDRAGMINDIST} {$ENDIF}
  DD_DEFDRAGMINDIST    = 2;

  {$IFDEF BCB} {$EXTERNALSYM OLEVERBATTRIB_NEVERDIRTIES} {$ENDIF}
  OLEVERBATTRIB_NEVERDIRTIES    = 1;
  {$IFDEF BCB} {$EXTERNALSYM OLEVERBATTRIB_ONCONTAINERMENU} {$ENDIF}
  OLEVERBATTRIB_ONCONTAINERMENU = 2;

type

{ Result code }

  HResult = Longint;

  PResultList = ^TResultList;
  TResultList = array[0..65535] of HResult;

{ OLE character and string types }

  TOleChar = WideChar;
  POleStr = PWideChar;

  POleStrList = ^TOleStrList;
  TOleStrList = array[0..65535] of POleStr;

{ 64-bit large integer }

  Largeint = Comp;

{ Globally unique ID }

  PGUID = ^TGUID;
  TGUID = record
    D1: Longint;
    D2: Word;
    D3: Word;
    D4: array[0..7] of Byte;
  end;

{ Interface ID }

  PIID = PGUID;
  TIID = TGUID;

{ Class ID }

  PCLSID = PGUID;
  TCLSID = TGUID;

{ Object ID }

  PObjectID = ^TObjectID;
  {$IFDEF BCB} {$EXTERNALSYM _OBJECTID} {$ENDIF}
  _OBJECTID = record
    Lineage: TGUID;
    Uniquifier: Longint;
  end;
  TObjectID = _OBJECTID;
  {$IFDEF BCB} {$EXTERNALSYM OBJECTID} {$ENDIF}
  OBJECTID = _OBJECTID;

{ Locale ID }

  TLCID = Longint;

{ Forward declarations }

  {$IFDEF BCB} {$EXTERNALSYM IStream} {$ENDIF}
  IStream = class;
  {$IFDEF BCB} {$EXTERNALSYM IRunningObjectTable } {$ENDIF}
  IRunningObjectTable = class;
  {$IFDEF BCB} {$EXTERNALSYM IEnumString } {$ENDIF}
  IEnumString = class;
  {$IFDEF BCB} {$EXTERNALSYM IMoniker} {$ENDIF}
  IMoniker = class;
  {$IFDEF BCB} {$EXTERNALSYM IAdviseSink} {$ENDIF}
  IAdviseSink = class;
  {$IFDEF BCB} {$EXTERNALSYM IDispatch } {$ENDIF}
  IDispatch = class;
  {$IFDEF BCB} {$EXTERNALSYM ITypeInfo} {$ENDIF}
  ITypeInfo = class;
  {$IFDEF BCB} {$EXTERNALSYM ITypeComp } {$ENDIF}
  ITypeComp = class;
  {$IFDEF BCB} {$EXTERNALSYM ITypeLib} {$ENDIF}
  ITypeLib = class;
  {$IFDEF BCB} {$EXTERNALSYM IEnumOleVerb } {$ENDIF}
  IEnumOleVerb = class;
  {$IFDEF BCB} {$EXTERNALSYM IOleInPlaceActiveObject} {$ENDIF}
  IOleInPlaceActiveObject = class;

{ IUnknown interface }
  //{$IFDEF BCB} {$EXTERNALSYM IUnknown } {$ENDIF}
  IUnknown = class
  public
    function QueryInterface(const iid: TIID; var obj): HResult; virtual; stdcall; abstract;
    function AddRef: Longint; virtual; stdcall; abstract;
    function Release: Longint; virtual; stdcall; abstract;
  end;

{ IClassFactory interface }

  {$IFDEF BCB} {$EXTERNALSYM IClassFactory } {$ENDIF}
  IClassFactory = class(IUnknown)
  public
    function CreateInstance(unkOuter: IUnknown; const iid: TIID;
      var obj): HResult; virtual; stdcall; abstract;
    function LockServer(fLock: BOOL): HResult; virtual; stdcall; abstract;
  end;

{ IMarshal interface }

  {$IFDEF BCB} {$EXTERNALSYM IMarshal } {$ENDIF}
  IMarshal = class(IUnknown)
  public
    function GetUnmarshalClass(const iid: TIID; pv: Pointer;
      dwDestContext: Longint; pvDestContext: Pointer; mshlflags: Longint;
      var cid: TCLSID): HResult; virtual; stdcall; abstract;
    function GetMarshalSizeMax(const iid: TIID; pv: Pointer;
      dwDestContext: Longint; pvDestContext: Pointer; mshlflags: Longint;
      var size: Longint): HResult; virtual; stdcall; abstract;
    function MarshalInterface(stm: IStream; const iid: TIID; pv: Pointer;
      dwDestContext: Longint; pvDestContext: Pointer;
      mshlflags: Longint): HResult; virtual; stdcall; abstract;
    function UnmarshalInterface(stm: IStream; const iid: TIID;
      var pv): HResult; virtual; stdcall; abstract;
    function ReleaseMarshalData(stm: IStream): HResult;
      virtual; stdcall; abstract;
    function DisconnectObject(dwReserved: Longint): HResult;
      virtual; stdcall; abstract;
  end;

{ IMalloc interface }

  {$IFDEF BCB} {$EXTERNALSYM IMalloc} {$ENDIF}
  IMalloc = class(IUnknown)
  public
    function Alloc(cb: Longint): Pointer; virtual; stdcall; abstract;
    function Realloc(pv: Pointer; cb: Longint): Pointer; virtual; stdcall; abstract;
    procedure Free(pv: Pointer); virtual; stdcall; abstract;
    function GetSize(pv: Pointer): Longint; virtual; stdcall; abstract;
    function DidAlloc(pv: Pointer): Integer; virtual; stdcall; abstract;
    procedure HeapMinimize; virtual; stdcall; abstract;
  end;

{ IMallocSpy interface }

  {$IFDEF BCB} {$EXTERNALSYM IMallocSpy } {$ENDIF}
  IMallocSpy = class(IUnknown)
  public
    function PreAlloc(cbRequest: Longint): Longint; virtual; stdcall; abstract;
    function PostAlloc(pActual: Pointer): Pointer; virtual; stdcall; abstract;
    function PreFree(pRequest: Pointer; fSpyed: BOOL): Pointer; virtual; stdcall; abstract;
    procedure PostFree(fSpyed: BOOL); virtual; stdcall; abstract;
    function PreRealloc(pRequest: Pointer; cbRequest: Longint;
      var ppNewRequest: Pointer; fSpyed: BOOL): Longint; virtual; stdcall; abstract;
    function PostRealloc(pActual: Pointer; fSpyed: BOOL): Pointer; virtual; stdcall; abstract;
    function PreGetSize(pRequest: Pointer; fSpyed: BOOL): Pointer; virtual; stdcall; abstract;
    function PostGetSize(pActual: Pointer; fSpyed: BOOL): Longint; virtual; stdcall; abstract;
    function PostDidAlloc(pRequest: Pointer; fSpyed: BOOL; fActual: Integer): Integer; virtual; stdcall; abstract;
    procedure PreHeapMinimize; virtual; stdcall; abstract;
    procedure PostHeapMinimize; virtual; stdcall; abstract;
  end;

{ IStdMarshalInfo interface }

  {$IFDEF BCB} {$EXTERNALSYM IStdMarshalInfo } {$ENDIF}
  IStdMarshalInfo = class(IUnknown)
  public
    function GetClassForHandler(dwDestContext: Longint; pvDestContext: Pointer;
      var clsid: TCLSID): HResult; virtual; stdcall; abstract;
  end;

{ IExternalConnection interface }

  {$IFDEF BCB} {$EXTERNALSYM IExternalConnection } {$ENDIF}
  IExternalConnection = class(IUnknown)
  public
    function AddConnection(extconn: Longint; reserved: Longint): Longint;
      virtual; stdcall; abstract;
    function ReleaseConnection(extconn: Longint; reserved: Longint;
      fLastReleaseCloses: BOOL): Longint; virtual; stdcall; abstract;
  end;

{ IWeakRef interface }

  {$IFDEF BCB} {$EXTERNALSYM IWeakRef } {$ENDIF}
  IWeakRef = class(IUnknown)
  public
    function ChangeWeakCount(delta: Longint): Longint; virtual; stdcall; abstract;
    function ReleaseKeepAlive(unkReleased: IUnknown;
      reserved: Longint): Longint; virtual; stdcall; abstract;
  end;

{ IEnumUnknown interface } 

  {$IFDEF BCB} {$EXTERNALSYM IEnumUnknown } {$ENDIF}
  IEnumUnknown = class(IUnknown)
  public
    function Next(celt: Longint; var elt;
      pceltFetched: PLongint): HResult; virtual; stdcall; abstract;
    function Skip(celt: Longint): HResult; virtual; stdcall; abstract;
    function Reset: HResult; virtual; stdcall; abstract;
    function Clone(var enm: IEnumUnknown): HResult; virtual; stdcall; abstract;
  end;

{ IBindCtx interface }

  PBindOpts = ^TBindOpts;
  {$IFDEF BCB} {$EXTERNALSYM tagBIND_OPTS} {$ENDIF}
  tagBIND_OPTS = record
    cbStruct: Longint;
    grfFlags: Longint;
    grfMode: Longint;
    dwTickCountDeadline: Longint;
  end;
  TBindOpts = tagBIND_OPTS;
  {$IFDEF BCB} {$EXTERNALSYM BIND_OPTS} {$ENDIF}
  BIND_OPTS = tagBIND_OPTS;

  {$IFDEF BCB} {$EXTERNALSYM IBindCtx } {$ENDIF}
  IBindCtx = class(IUnknown)
  public
    function RegisterObjectBound(unk: IUnknown): HResult; virtual; stdcall; abstract;
    function RevokeObjectBound(unk: IUnknown): HResult; virtual; stdcall; abstract;
    function ReleaseBoundObjects: HResult; virtual; stdcall; abstract;
    function SetBindOptions(var bindopts: TBindOpts): HResult; virtual; stdcall; abstract;
    function GetBindOptions(var bindopts: TBindOpts): HResult; virtual; stdcall; abstract;
    function GetRunningObjectTable(var rot: IRunningObjectTable): HResult;
      virtual; stdcall; abstract;
    function RegisterObjectParam(pszKey: POleStr; unk: IUnknown): HResult;
      virtual; stdcall; abstract;
    function GetObjectParam(pszKey: POleStr; var unk: IUnknown): HResult;
      virtual; stdcall; abstract;
    function EnumObjectParam(var Enum: IEnumString): HResult; virtual; stdcall; abstract;
    function RevokeObjectParam(pszKey: POleStr): HResult; virtual; stdcall; abstract;
  end;

{ IEnumMoniker interface }

  {$IFDEF BCB} {$EXTERNALSYM IEnumMoniker } {$ENDIF}
  IEnumMoniker = class(IUnknown)
  public
    function Next(celt: Longint; var elt;
      pceltFetched: PLongint): HResult; virtual; stdcall; abstract;
    function Skip(celt: Longint): HResult; virtual; stdcall; abstract;
    function Reset: HResult; virtual; stdcall; abstract;
    function Clone(var enm: IEnumMoniker): HResult; virtual; stdcall; abstract;
  end;

{ IRunnableObject interface }

  {$IFDEF BCB} {$EXTERNALSYM IRunnableObject } {$ENDIF}
  IRunnableObject = class(IUnknown)
  public
    function GetRunningClass(var clsid: TCLSID): HResult; virtual; stdcall; abstract;
    function Run(bc: IBindCtx): HResult; virtual; stdcall; abstract;
    function IsRunning: BOOL; virtual; stdcall; abstract;
    function LockRunning(fLock: BOOL; fLastUnlockCloses: BOOL): HResult;
      virtual; stdcall; abstract;
    function SetContainedObject(fContained: BOOL): HResult; virtual; stdcall; abstract;
  end;

{ IRunningObjectTable interface }

  {$IFDEF BCB} {$EXTERNALSYM IRunningObjectTable } {$ENDIF}
  IRunningObjectTable = class(IUnknown)
  public

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -