IpcGetTemplateIssuerList function

Returns available issuers of rights policy templates. The available issuers is a list of RMS servers that this user has already contacted.


HRESULT WINAPI IpcGetTemplateIssuerList(
  _In_opt_   PCIPC_CONNECTION_INFO      pConnectionInfo,
             DWORD                      dwFlags,
  _In_opt_   PCIPC_PROMPT_CTX           pContext,
  _Reserved_ LPVOID                     pvReserved,
  _Out_      PCIPC_TEMPLATE_ISSUER_LIST *ppcTemplateIssuers


pConnectionInfo [in, optional]

Optional RMS Server information from which to get templates. See IPC_CONNECTION_INFO for server URLs.

If specified, this function will return only the IPC_TEMPLATE_ISSUER_LIST structure for the specified server. If not specified, this function will return IPC_TEMPLATE_ISSUER_LIST structures for all available servers.



Use this flag to retrieve only the default server for the enterprise or user. If this flag is specified, then pConnectionInfo should be NULL.

pContext [in, optional]

An optional pointer to an IPC_PROMPT_CTX structure. This can be used in cases where authentication prompts are not desirable or when an application wants to control the modal behavior of any prompt dialogs.


Reserved for future use. Must be NULL.

ppcTemplateIssuers [out]

A pointer to a variable that receives a pointer to the buffer that contains the Template Issuer List. For more information, see IPC_TEMPLATE_ISSUER_LIST.


The buffer is allocated by the RMS SDK 2.1 and must be freed by calling IpcFreeMemory.

Return value

If the function succeeds, the return value is S_OK. If the function fails, it returns an HRESULT value that indicates the error.

For more information, see Error codes for a description of all RMS SDK 2.1 return values.

Possible values include, but are not limited to, those in the following list.


Meaning: RMS SDK 2.1 needs network access to complete the operation, but the application requested offline mode.

Action: Call the function again, without specifying the IPC_PROMPT_FLAG_OFFLINE flag. Typically, this flag is used in situations in which failure is acceptable and preferred to performing a network access. The system is already optimized to use the network only when absolutely necessary, so we do not recommend that developers use the IPC_PROMPT_FLAG_OFFLINE flag as an optimization.


Meaning: RMS SDK 2.1 needs to display a window to complete the operation, but the application requested silent mode.

Action: Call the function again, without specifying the IPC_PROMPT_FLAG_SILENT flag.


The issuer information can be used as basis of application-specified policy. An application can use the issuer information returned by this function to create its own usage policy by calling IpcCreateLicenseFromScratch if the fAllowFromScratch of the IPC_TEMPLATE_ISSUER structure is set to TRUE.

IpcGetTemplateIssuerList may initialize COM with the COINIT_APARTMENTTHREADED flag to display user interface elements. As a result, callers who have initialized COM with the COINIT_MULTITHREADED flag must use the IpcGetTemplateIssuerList function in silent mode by using the IPC_PROMPT_FLAG_SILENT flag with the IPC_PROMPT_CTX structure.


Minimum supported client
Windows Vista with SP2
Minimum supported server
Windows Server 2008

See also








Error codes