334 lines
8.5 KiB
C
334 lines
8.5 KiB
C
|
#ifndef _IGCCAPP_H_
|
||
|
#define _IGCCAPP_H_
|
||
|
|
||
|
#include <basetyps.h>
|
||
|
#include "gcc.h"
|
||
|
|
||
|
#define GCCAPI_(_type_) virtual _type_ __stdcall
|
||
|
#define GCCAPI GCCAPI_(GCCError)
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCSessionKey *pSessionKey;
|
||
|
BOOL fEnrollActively;
|
||
|
UserID nUserID;
|
||
|
BOOL fConductingCapable;
|
||
|
MCSChannelType nStartupChannelType;
|
||
|
ULONG cNonCollapsedCaps;
|
||
|
GCCNonCollCap **apNonCollapsedCaps;
|
||
|
ULONG cCollapsedCaps;
|
||
|
GCCAppCap **apCollapsedCaps;
|
||
|
BOOL fEnroll;
|
||
|
}
|
||
|
GCCEnrollRequest, *PGCCEnrollRequest;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
ULONG cNodes;
|
||
|
GCCNodeID *aNodeIDs;
|
||
|
}
|
||
|
GCCSimpleNodeList, *PGCCSimpleNodeList;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
ULONG cApes;
|
||
|
GCCAppProtocolEntity **apApes;
|
||
|
}
|
||
|
GCCAppProtEntityList, *PGCCAppProtEntityList;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCConfID nConfID;
|
||
|
ULONG cRosters;
|
||
|
GCCAppRoster **apAppRosters;
|
||
|
GCCResult nResult;
|
||
|
LPVOID pReserved; // do not touch
|
||
|
}
|
||
|
GCCAppRosterInquireConfirm, *PGCCAppRosterInquireConfirm;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCConfID nConfID;
|
||
|
GCCConfName ConfName;
|
||
|
LPSTR pszConfModifier;
|
||
|
LPWSTR pwszConfDescriptor;
|
||
|
GCCConfRoster *pConfRoster;
|
||
|
GCCResult nResult;
|
||
|
}
|
||
|
GCCConfRosterInquireConfirm, *PGCCConfRosterInquireConfirm;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCConfID nConfID;
|
||
|
BOOL fPermissionGranted;
|
||
|
}
|
||
|
GCCAppPermissionToEnrollInd, *PGCCAppPermissionToEnrollInd;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCConfID nConfID;
|
||
|
// GCCSessionKey *pSessionKey;
|
||
|
GCCSessionID sidMyself;
|
||
|
GCCEntityID eidMyself;
|
||
|
GCCNodeID nidMyself;
|
||
|
GCCResult nResult;
|
||
|
GCCRequestTag nReqTag;
|
||
|
}
|
||
|
GCCAppEnrollConfirm, *PGCCAppEnrollConfirm;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCConfID nConfID;
|
||
|
// GCCAppProtEntityList *pApeList;
|
||
|
GCCResult nResult;
|
||
|
GCCRequestTag nReqTag;
|
||
|
}
|
||
|
GCCAppInvokeConfirm, *PGCCAppInvokeConfirm;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCConfID nConfID;
|
||
|
GCCAppProtEntityList ApeList;
|
||
|
GCCNodeID nidInvoker;
|
||
|
}
|
||
|
GCCAppInvokeInd, *PGCCAppInvokeInd;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCConfID nConfID;
|
||
|
ULONG cRosters;
|
||
|
GCCAppRoster **apAppRosters;
|
||
|
LPVOID pReserved; // do not touch
|
||
|
}
|
||
|
GCCAppRosterReportInd, *PGCCAppRosterReportInd;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCConfID nConfID;
|
||
|
GCCRegistryKey *pRegKey;
|
||
|
GCCRegistryItem *pRegItem;
|
||
|
GCCRegistryEntryOwner EntryOwner;
|
||
|
GCCModificationRights eRights;
|
||
|
GCCResult nResult;
|
||
|
BOOL fDeliveryEnabled; // for monitor confirm only
|
||
|
}
|
||
|
GCCRegistryConfirm, *PGCCRegistryConfirm;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCConfID nConfID;
|
||
|
ULONG nFirstHandle;
|
||
|
ULONG cHandles;
|
||
|
GCCResult nResult;
|
||
|
}
|
||
|
GCCRegAllocateHandleConfirm, *PGCCRegAllocateHandleConfirm;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCConfID nConfID;
|
||
|
BOOL fConducted;
|
||
|
GCCNodeID nidConductor;
|
||
|
BOOL fGranted;
|
||
|
GCCResult nResult;
|
||
|
}
|
||
|
GCCConductorInquireConfirm, *PGCCConductorInquireConfirm;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCConfID nConfID;
|
||
|
BOOL fThisNodeIsGranted;
|
||
|
GCCSimpleNodeList Granted;
|
||
|
GCCSimpleNodeList Waiting;
|
||
|
LPVOID pReserved; // do not touch
|
||
|
}
|
||
|
GCCConductorPermitGrantInd, *PGCCConductorPermitGrantInd;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCConfID nConfID;
|
||
|
GCCNodeID nidConductor;
|
||
|
}
|
||
|
GCCConductorAssignInd, *PGCCConductorAssignInd;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCConfID nConfID;
|
||
|
}
|
||
|
GCCConductorReleaseInd, *PConductorReleaseInd;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* GCCAppSapMsg
|
||
|
* This structure defines the callback message that is passed from GCC to
|
||
|
* a user application when an indication or confirm occurs.
|
||
|
*/
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GCCMessageType eMsgType;
|
||
|
LPVOID pAppData;
|
||
|
LPVOID reserved1; // reserved
|
||
|
GCCConfID nConfID; // reserved
|
||
|
|
||
|
union
|
||
|
{
|
||
|
GCCAppPermissionToEnrollInd AppPermissionToEnrollInd;
|
||
|
GCCAppEnrollConfirm AppEnrollConfirm;
|
||
|
|
||
|
GCCAppRosterInquireConfirm AppRosterInquireConfirm;
|
||
|
GCCAppRosterReportInd AppRosterReportInd;
|
||
|
|
||
|
GCCConfRosterInquireConfirm ConfRosterInquireConfirm;
|
||
|
|
||
|
GCCAppInvokeConfirm AppInvokeConfirm;
|
||
|
GCCAppInvokeInd AppInvokeInd;
|
||
|
|
||
|
GCCRegistryConfirm RegistryConfirm;
|
||
|
GCCRegAllocateHandleConfirm RegAllocHandleConfirm;
|
||
|
|
||
|
GCCConductorInquireConfirm ConductorInquireConfirm;
|
||
|
GCCConductorPermitGrantInd ConductorPermitGrantInd;
|
||
|
GCCConductorAssignInd ConductorAssignInd;
|
||
|
GCCConductorReleaseInd ConductorReleaseInd;
|
||
|
};
|
||
|
}
|
||
|
GCCAppSapMsg, *PGCCAppSapMsg;
|
||
|
|
||
|
|
||
|
typedef void (CALLBACK *LPFN_APP_SAP_CB) (GCCAppSapMsg *);
|
||
|
|
||
|
|
||
|
|
||
|
#undef INTERFACE
|
||
|
#define INTERFACE IGCCAppSap
|
||
|
DECLARE_INTERFACE(IGCCAppSap)
|
||
|
{
|
||
|
STDMETHOD_(void, ReleaseInterface) (THIS) PURE;
|
||
|
|
||
|
/* application roster services */
|
||
|
|
||
|
STDMETHOD_(GCCError, AppEnroll) (THIS_
|
||
|
IN GCCConfID,
|
||
|
IN GCCEnrollRequest *,
|
||
|
OUT PGCCRequestTag)
|
||
|
PURE;
|
||
|
|
||
|
STDMETHOD_(GCCError, AppInvoke) (THIS_
|
||
|
IN GCCConfID,
|
||
|
IN GCCAppProtEntityList *,
|
||
|
IN GCCSimpleNodeList *,
|
||
|
OUT PGCCRequestTag)
|
||
|
PURE;
|
||
|
|
||
|
// to acquire one or all full-refresh app roster.
|
||
|
// can be called by both app sap and control sap.
|
||
|
STDMETHOD_(GCCError, AppRosterInquire) (THIS_
|
||
|
IN GCCConfID,
|
||
|
IN GCCSessionKey *,
|
||
|
OUT GCCAppSapMsg **)
|
||
|
PURE;
|
||
|
|
||
|
STDMETHOD_(void, FreeAppSapMsg) (THIS_
|
||
|
IN GCCAppSapMsg *)
|
||
|
PURE;
|
||
|
|
||
|
/* conference roster service */
|
||
|
|
||
|
STDMETHOD_(BOOL, IsThisNodeTopProvider) (THIS_
|
||
|
IN GCCConfID)
|
||
|
PURE;
|
||
|
|
||
|
STDMETHOD_(GCCNodeID, GetTopProvider) (THIS_
|
||
|
IN GCCConfID)
|
||
|
PURE;
|
||
|
|
||
|
// to acquire a full-refresh conf roster.
|
||
|
STDMETHOD_(GCCError, ConfRosterInquire) (THIS_
|
||
|
IN GCCConfID,
|
||
|
OUT GCCAppSapMsg **)
|
||
|
PURE;
|
||
|
|
||
|
/* registry services */
|
||
|
|
||
|
STDMETHOD_(GCCError, RegisterChannel) (THIS_
|
||
|
IN GCCConfID,
|
||
|
IN GCCRegistryKey *,
|
||
|
IN ChannelID)
|
||
|
PURE;
|
||
|
|
||
|
STDMETHOD_(GCCError, RegistryAssignToken) (THIS_
|
||
|
IN GCCConfID,
|
||
|
IN GCCRegistryKey *)
|
||
|
PURE;
|
||
|
|
||
|
STDMETHOD_(GCCError, RegistrySetParameter) (THIS_
|
||
|
IN GCCConfID,
|
||
|
IN GCCRegistryKey *,
|
||
|
IN LPOSTR,
|
||
|
IN GCCModificationRights)
|
||
|
PURE;
|
||
|
|
||
|
STDMETHOD_(GCCError, RegistryRetrieveEntry) (THIS_
|
||
|
IN GCCConfID,
|
||
|
IN GCCRegistryKey *)
|
||
|
PURE;
|
||
|
|
||
|
STDMETHOD_(GCCError, RegistryDeleteEntry) (THIS_
|
||
|
IN GCCConfID,
|
||
|
IN GCCRegistryKey *)
|
||
|
PURE;
|
||
|
|
||
|
STDMETHOD_(GCCError, RegistryMonitor) (THIS_
|
||
|
IN GCCConfID,
|
||
|
IN BOOL fEnableDelivery,
|
||
|
IN GCCRegistryKey *)
|
||
|
PURE;
|
||
|
|
||
|
STDMETHOD_(GCCError, RegistryAllocateHandle) (THIS_
|
||
|
IN GCCConfID,
|
||
|
IN ULONG cHandles)
|
||
|
PURE;
|
||
|
|
||
|
/* conductorship services */
|
||
|
|
||
|
STDMETHOD_(GCCError, ConductorInquire) (THIS_
|
||
|
IN GCCConfID)
|
||
|
PURE;
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
//
|
||
|
// GCC Application Service Access Point exports
|
||
|
//
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
GCCError WINAPI GCC_CreateAppSap(
|
||
|
OUT IGCCAppSap **,
|
||
|
IN LPVOID, // user defined data
|
||
|
IN LPFN_APP_SAP_CB);
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#endif // _IGCCAPP_H_
|
||
|
|