SCARDAGG.IDL

/*++ 

Copyright (c) 1996 Microsoft Corporation

Module Name:

SCardAgg

Abstract:

IDL source for SCardAgg.DLL. This in-process server (DLL)
example shows aggregation of the ISCardISO7816 interface using
the ATL class library.

Author:

Environment:

Win32

Revision History:

Notes:

1. This file will be processed by the MIDL tool to produce
the type library (SCardAgg.tlb) and marshalling code. A
header file named SCardAgg.h will be generated by the
MIDL compiler for the ATL CPP code to use.

2. Rather than create separate IDL files for the C/C++, VB
and Java languages, the decision has been made to create
one IDL file that can be used by any language environment
using standardized OLE Automation types.

3. The #define'd constants in this MIDL file will NOT be
registered into the type library! You will need to define
these constants in your Visual Basic, Delphi, etc. code
as needed unless the constant is not defined as a const
variable in this IDL file. The constants will be defined
for Java users. And, of course, the C/C++ coders can use
the header file generated by the MIDL compiler as described
above.

--*/
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Smart Cards Support")
cpp_quote("// Copyright (C) Microsoft Corporation, 1996-1997.")
cpp_quote("//")
cpp_quote("//")
cpp_quote("// File: SCardAgg.h")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")

cpp_quote("")
cpp_quote("//////////////////////////////////////////////////////////////////")
cpp_quote("//")
cpp_quote("// Imports")
cpp_quote("//")

#ifndef DO_NO_IMPORTS
import "oaidl.idl";
import "SspsIdl.idl";
#endif

interface ISCardNewInterface;

cpp_quote("")
cpp_quote("//////////////////////////////////////////////////////////////////")
cpp_quote("//")
cpp_quote("// Types and Constants")
cpp_quote("//")

cpp_quote("#ifndef _NULL_DEFINED")
cpp_quote("#define _NULL_DEFINED")
#define NULL 0
cpp_quote("#endif // !_NULL_DEFINED")

cpp_quote("#ifndef _LPBYTE_DEFINED")
cpp_quote("#define _LPBYTE_DEFINED")
typedef [public] BYTE *LPBYTE;
cpp_quote("#endif // !_LPBYTE_DEFINED")

cpp_quote("#ifndef _LPCBYTE_DEFINED")
cpp_quote("#define _LPCBYTE_DEFINED")
typedef [public] const LPBYTE LPCBYTE;
cpp_quote("#endif // !_LPCBYTE_DEFINED")

cpp_quote("#ifndef _IByteBuffer_DEFINED")
cpp_quote("#define _IByteBuffer_DEFINED")
cpp_quote("#define IByteBuffer IStream")
#define IByteBuffer IStream
cpp_quote("#endif // !_IByteBuffer_DEFINED")

cpp_quote("#ifndef _LPBYTEBUFFER_DEFINED")
cpp_quote("#define _LPBYTEBUFFER_DEFINED")
typedef [unique] LPSTREAM LPBYTEBUFFER;
cpp_quote("#endif // !_LPBYTEBUFFER_DEFINED")


cpp_quote("")
cpp_quote("//////////////////////////////////////////////////////////////////")
cpp_quote("//")
cpp_quote("// ISCardNewInterface Interface")
cpp_quote("//")

cpp_quote("#ifndef _LPSCARDNI_DEFINED")
cpp_quote("#define _LPSCARDNI_DEFINED")

[
object,
uuid(9AF66383-8CCC-11D0-AC8C-A80C5BC9547B),
dual,
helpstring("ISCardNewInterface Interface"),
pointer_default(unique)
]
interface ISCardNewInterface : IDispatch
{
// Includes -

import "oaidl.idl";

// Pointer(s) -

typedef [unique] ISCardNewInterface* LPSCARDNI;
typedef [unique] LPSCARDNI LPSCARDNEWINTERFACE;

// Properties -

// Methods -
[id(0),
helpstring("Some new interface to support specific ICC functionality.")]
HRESULT NewInterface([in, defaultvalue(0)] WORD wParameters,
[in, defaultvalue(0)] DWORD dwLength,
[in] LPBYTEBUFFER pParam,
[in,out] LPSCARDCMD* ppCmd);
};

cpp_quote("#endif // !_LPSCARDNI_DEFINED")


[
uuid(9AF66381-8CCC-11D0-AC8C-A80C5BC9547B),
version(1.0),
helpstring("ScardAggregate 1.0 Type Library")
]
library SCARDAGGLib
{
importlib("stdole32.tlb");

[
uuid(9AF66387-8CCC-11D0-AC8C-A80C5BC9547B),
helpstring("SCardNewInterface Class")
]
coclass CSCardNewInterface
{
[default] interface ISCardNewInterface;
};

};