3.1.4.20 NspiGetTemplateInfo (Opnum 13)

The NspiGetTemplateInfo method returns information about template objects in the address book.

 long NspiGetTemplateInfo(
   [in] NSPI_HANDLE hRpc,
   [in] DWORD dwFlags,
   [in] DWORD ulType,
   [in, unique] [string] char* pDN,
   [in] DWORD dwCodePage,
   [in] DWORD dwLocaleID,
   [out] PropertyRow_r** ppData
 );

hRpc: An RPC context handle as specified in section 2.3.9.

dwFlags: A DWORD value containing a set of bit flags. The server MUST ignore values other than the bit flags TI_HELPFILE_NAME, TI_HELPFILE_CONTENTS, TI_SCRIPT, TI_TEMPLATE, and TI_EMT.

ulType: A DWORD value. Specifies the display type of the template for which information is requested.

pDN: The value NULL or the DN of the template requested. The value is NULL-terminated.

dwCodePage: A DWORD value. Specifies the codepage of the template for which information is requested.

dwLocaleID: A DWORD value. Specifies the LCID of the template for which information is requested.

ppData: A reference to a PropertyRow_r value. On return, it contains the information requested.

Return Values: The server returns a long value specifying the return status of the method.

Exceptions Thrown

No exceptions are thrown beyond those thrown by the underlying RPC protocol, as specified in [MS-RPCE].

Server Processing Rules

Upon receiving this message, the server MUST process the data from the message subject to the following constraints:

  1. If the server returns any return value other than Success, the server MUST return the value NULL in the return parameters ppData.

  2. The server MAY make additional validations as described in section 5. If the server chooses to limit the visibility of data based on these validations, the server MUST proceed as if that data did not exist in the address book. See the product behavior note cited in section 5.1 for more information.

  3. If the codepage specified in the dwCodePage input parameter has the value CP_WINUNICODE, the server MUST return the value InvalidCodePage.

  4. If the server does not recognize the codepage specified in the dwCodePage input parameter as a supported codepage, the server MUST return the value InvalidCodePage.

  5. The server locates the template for which it will return information as follows:

    1. If the input parameter pDN is NULL, the server MUST choose an appropriate template object for the display type specified by the input parameter ulType and for the LCID specified by the input parameter dwLocaleID. The specific choice of an appropriate template object is defined by local policy, and is not constrained by the NSPI Protocol. See [MS-OXOABKT].

    2. If the input parameter pDN is not NULL, it specifies the DN of a template object in the address book. In this case, the server MUST ignore the input parameters ulDispType and dwLocaleID.

    3. If the server is unable to locate a specific object based on these constraints, the server MUST return the value InvalidLocale.

  6. The server constructs an PropertyRow_rvalue. This property values in this PropertyRow_rare specified as follows:

    1. If the input parameter dwFlags has the TI_HELPFILE_NAME bit set, the client is requesting the helpfile name data for the template, as described in [MS-OXOABKT]. The server MUST place this data into the PropertyRow_r.

    2. If the input parameter dwFlags has the TI_HELPFILE_CONTENTS bit set, the client is requesting the helpfile contents data for the template, as described in [MS-OXOABKT]. The server MUST place this data into the PropertyRow_r.

    3. If the input parameter dwFlags has the TI_SCRIPT bit set, the client is requesting the script data for the template, as described in [MS-OXOABKT]. The server MUST place this data into the PropertyRow_r.

    4. If the input parameter dwFlags has the TI_TEMPLATE bit set, the client is requesting the user interface data for the template, as described in the [MS-OXOABKT]. The server MUST place this data into the PropertyRow_r.

    5. If the input parameter dwFlags has the TI_EMT set, the client is requesting the address type data for the template, as described in [MS-OXOABKT]. The server MUST place this data into the PropertyRow_r.

  7. The server MUST return the constructed PropertyRow_rin the output parameter ppData.

  8. If no other return values have been specified by these constraints, the server MUST return the return value Success.