#include "stdinc.idl"

cpp_quote("#if !defined(__cplusplus)")
typedef struct CSxApwActCtxHandle CSxApwActCtxHandle;
cpp_quote("#else")
cpp_quote("class CSxApwActCtxHandle;")
cpp_quote("#endif")

[
	object,
    local,
	uuid(IID_ISxApwActCtxHandle_midl)
]
interface ISxApwActCtxHandle : IUnknown
{
/* the 64bit porting guide informs us that the better design is
    HRESULT
    Activate(
        [out] IUnknown** cookie
        );
so that server/client death is nicely handled by COM freeing all objects
but this would force more heap allocation on us.
*/
    HRESULT
    Activate(
        [out] unsigned __int64* cookie
        );

    HRESULT
    Deactivate(
        [in] unsigned __int64 cookie
        );

    HANDLE
    GetHandle(
        );

    CSxApwActCtxHandle*
    GetCPlusPlusObject(
        );
};
