/*++ Copyright (c) 1995 Microsoft Corporation Module Name: dnssrv.idl Abstract: Domain Name System (DNS) Server DNS RPC API and type definitions. Author: Jim Gilroy (jamesg) April, 1997 Revision History: --*/ // // NT5 RPC Interface definition // [ uuid(50abc2a4-574d-40b3-9d66-ee4fd5fba076), version(5.0), pointer_default(unique) ] interface DnsServer { import "imports.idl"; typedef [handle] LPCWSTR DNSSRV_RPC_HANDLE; // // RPC API // DNS_STATUS R_DnssrvOperation( [in, unique, string] DNSSRV_RPC_HANDLE hServer, [in, unique, string] LPCSTR pszZone, [in] DWORD dwContext, [in, unique, string] LPCSTR pszOperation, [in] DWORD dwTypeId, [in, switch_is(dwTypeId)] DNSSRV_RPC_UNION pData ); DNS_STATUS R_DnssrvQuery( [in, unique, string] DNSSRV_RPC_HANDLE hServer, [in, unique, string] LPCSTR pszZone, [in, unique, string] LPCSTR pszOperation, [out] PDWORD pdwTypeId, [out, switch_is(*pdwTypeId)] DNSSRV_RPC_UNION * ppData ); DNS_STATUS R_DnssrvComplexOperation( [in, unique, string] DNSSRV_RPC_HANDLE hServer, [in, unique, string] LPCSTR pszZone, [in, unique, string] LPCSTR pszOperation, [in] DWORD dwTypeIn, [in, switch_is(dwTypeIn)] DNSSRV_RPC_UNION pDataIn, [out] PDWORD pdwTypeOut, [out, switch_is(*pdwTypeOut)] DNSSRV_RPC_UNION * ppDataOut ); DNS_STATUS R_DnssrvEnumRecords( [in, unique, string] DNSSRV_RPC_HANDLE hServer, [in, unique, string] LPCSTR pszZone, [in, unique, string] LPCSTR pszNodeName, [in, unique, string] LPCSTR pszStartChild, [in] WORD wRecordType, [in] DWORD fSelectFlag, [in, unique, string] LPCSTR pszFilterStart, [in, unique, string] LPCSTR pszFilterStop, [out] PDWORD pdwBufferLength, [out, size_is(, *pdwBufferLength)] PBYTE * ppBuffer ); DNS_STATUS R_DnssrvUpdateRecord( [in, unique, string] DNSSRV_RPC_HANDLE hServer, [in, unique, string] LPCSTR pszZone, [in, string] LPCSTR pszNodeName, [in, unique] PDNS_RPC_RECORD pAddRecord, [in, unique] PDNS_RPC_RECORD pDeleteRecord ); DNS_STATUS R_DnssrvOperation2( [in] DWORD dwClientVersion, [in] DWORD dwSettingFlags, [in, unique, string] DNSSRV_RPC_HANDLE hServer, [in, unique, string] LPCSTR pszZone, [in] DWORD dwContext, [in, unique, string] LPCSTR pszOperation, [in] DWORD dwTypeId, [in, switch_is(dwTypeId)] DNSSRV_RPC_UNION pData ); DNS_STATUS R_DnssrvQuery2( [in] DWORD dwClientVersion, [in] DWORD dwSettingFlags, [in, unique, string] DNSSRV_RPC_HANDLE hServer, [in, unique, string] LPCSTR pszZone, [in, unique, string] LPCSTR pszOperation, [out] PDWORD pdwTypeId, [out, switch_is(*pdwTypeId)] DNSSRV_RPC_UNION * ppData ); DNS_STATUS R_DnssrvComplexOperation2( [in] DWORD dwClientVersion, [in] DWORD dwSettingFlags, [in, unique, string] DNSSRV_RPC_HANDLE hServer, [in, unique, string] LPCSTR pszZone, [in, unique, string] LPCSTR pszOperation, [in] DWORD dwTypeIn, [in, switch_is(dwTypeIn)] DNSSRV_RPC_UNION pDataIn, [out] PDWORD pdwTypeOut, [out, switch_is(*pdwTypeOut)] DNSSRV_RPC_UNION * ppDataOut ); DNS_STATUS R_DnssrvEnumRecords2( [in] DWORD dwClientVersion, [in] DWORD dwSettingFlags, [in, unique, string] DNSSRV_RPC_HANDLE hServer, [in, unique, string] LPCSTR pszZone, [in, unique, string] LPCSTR pszNodeName, [in, unique, string] LPCSTR pszStartChild, [in] WORD wRecordType, [in] DWORD fSelectFlag, [in, unique, string] LPCSTR pszFilterStart, [in, unique, string] LPCSTR pszFilterStop, [out] PDWORD pdwBufferLength, [out, size_is(, *pdwBufferLength)] PBYTE * ppBuffer ); DNS_STATUS R_DnssrvUpdateRecord2( [in] DWORD dwClientVersion, [in] DWORD dwSettingFlags, [in, unique, string] DNSSRV_RPC_HANDLE hServer, [in, unique, string] LPCSTR pszZone, [in, string] LPCSTR pszNodeName, [in, unique] PDNS_RPC_RECORD pAddRecord, [in, unique] PDNS_RPC_RECORD pDeleteRecord ); } // // End of dnssrv.idl //