Click to open or copy the files for the Exit sample.
The source code in this directory can be used to build a sample Exit Module for the Microsoft Certificate Server. It is meant to run on Windows NT 4.0 with SP3 or later, or on Windows NT 5.0 only. The Certificate Server must already be installed.
The Certificate Server calls the Exit Module through the ICertExit interface, and the Exit Module can call back to the Certificate Server through the ICertServerExit interface.
Each time the Certificate Server issues a certificate, it passes control to the CCertExit::Notify method in Exit.cpp, specifying that a certificate has been issued. The passed Context parameter is used with the ICertServerExit interface to retrieve properties from the newly issued certificate.
This sample uses the following keywords:
_certexit_check_iid; _certexit_iid_lookup; addref; begin_com_map; begin_object_map; bstr_userfree; bstr_usermarshal; bstr_usersize; bstr_userunmarshal; ccertexit; checkcert; checkrequestproperties; cinterface_proxy_vtable; cocreateinstance; code_seg; com_interface_entry; data_seg; declare_not_aggregatable; declare_registry; declspec_uuid; defined; disablethreadlibrarycalls; dllcanunloadnow; dlldata_routines; dllgetclassobject; dllmain; dllregisterserver; dllunregisterserver; end_com_map; end_object_map; enumerateattributes; enumerateattributesclose; enumerateattributessetup; enumerateextensions; enumerateextensionsclose; enumerateextensionssetup; exit:checkrequestproperties; exit:enumerateattributes; exit:enumerateextensions; extern_proxy_file; getcertificateextension; getcertificateextensionflags; getclassobject; getdescription; getidsofnames; getlockcount; getrequestattribute; getrequestproperty; gettypeinfo; gettypeinfocount; icertexit_addref; icertexit_getdescription; icertexit_getdescription_proxy; icertexit_getdescription_stub; icertexit_getidsofnames; icertexit_gettypeinfo; icertexit_gettypeinfocount; icertexit_initialize; icertexit_initialize_proxy; icertexit_initialize_stub; icertexit_invoke; icertexit_notify; icertexit_notify_proxy; icertexit_notify_stub; icertexit_queryinterface; icertexit_release; iid_generic_check_iid; initialize; inlineisequalguid; interfacesupportserrorinfo; invoke; midl_memset; midl_user_allocate; midl_user_free; ndrclearoutparameters; ndrconvert; ndrfcshort; ndrpointerfree; ndrproxyerrorhandler; ndrproxyfreebuffer; ndrproxygetbuffer; ndrproxyinitialize; ndrproxysendreceive; ndrstubgetbuffer; ndrstubinitialize; ndrusermarshalbuffersize; ndrusermarshalfree; ndrusermarshalmarshall; ndrusermarshalunmarshall; notify; object_entry; printf; queryinterface; reference_proxy_file; registerserver; release; rpcexcept; rpcexceptioncode; setcontext; stdmethod; sysallocstring; sysfreestring; sysstringbytelen; term; text; unregisterserver; variantclear; variantinit