[
  uuid(CBD8FFC2-ACD0-4983-A5BE-E0965E780889),
  version(1.0)
]
library JoinDecl
{
  // Referenced type libraries 
  importlib("JoinDecl.tlb");

  // forward declared

  typedef short USHORT;

  typedef LONG ULONG;

  typedef LONG PVOID;

  typedef LONG LPANSISTR;

  typedef LONG UINT;

  struct SafeArray1d
  {
    USHORT cDims;
    USHORT fFeatures;
    ULONG cbElements;
    ULONG cLocks;
    PVOID pvData;
    ULONG cElements;
    LONG lLbound;
  };

  [
    dllname("oleaut32.dll")
  ]
  module OleAut32
  {
    BSTR SysAllocStringByteLen([in] LPANSISTR psz, [in] UINT iLen);
  };

  [
    dllname("kernel32.dll")
  ]
  module Kernel32
  {
    void CopyMemory([in] void* pDst, [in] void* pSrc, [in] LONG ByteLen);
    void ZeroMemory([in] void* pDst, [in] LONG ByteLen);
  };

  [

  ]
  module OLEErrors
  {
    [entry(0x40000000)]
    LONG E_NOINTERFACE = -2147467262;
  };

};