//+-------------------------------------------------------------------------
//
//  Microsoft Windows
//
//  Copyright (C) Microsoft Corporation, 1997 - 1999
//
//  File:       catdbrpc.idl
//
//--------------------------------------------------------------------------

import "unknwn.idl";


////////////////////////////
// Interfaces

[
  uuid(F50AAC00-C7F3-428e-A022-A6B71BFB9D43),
  version(1.0),
  pointer_default(unique)
]
interface ICatDBSvc
{
    DWORD
    SSCatDBAddCatalog(
        [in]									handle_t    h,
		[in]									DWORD		ProcessID,
		[in]									DWORD		dwFlags,
        [in]									LPCWSTR     pwszSubSysGUID,
		[in]									LPCWSTR     pwszCatalogFile,
		[in][unique]							LPCWSTR		pwszCatName,
		[out]									LPWSTR		*ppwszCatalogNameUsed
        );

	DWORD
    SSCatDBDeleteCatalog(
        [in]									handle_t    h,
		[in]									DWORD		ProcessID,
		[in]									DWORD		dwFlags,
        [in]									LPCWSTR     pwszSubSysGUID,
		[in]									LPCWSTR     pwszCatalogFile
		);

	DWORD
    SSCatDBEnumCatalogs(
        [in]									handle_t    h,
		[in]									DWORD		ProcessID,
		[in]									DWORD		dwFlags,
        [in]									LPCWSTR     pwszSubSysGUID,
		[in][size_is(cbHash)]					BYTE*       pbHash,           
        [in]									DWORD       cbHash,
		[out]									DWORD*      pdwNumCatalogNames,
		[out][size_is(,*pdwNumCatalogNames)]	LPWSTR**    pppwszCatalogNames	        
		);

	DWORD
    SSCatDBRegisterForChangeNotification(
        [in]									handle_t    h,
		[in]									DWORD		ProcessID,
		[in]									DWORD_PTR	EventHandle,
		[in]									DWORD		dwFlags,
        [in]									LPCWSTR     pwszSubSysGUID,
		[in]									BOOL		fUnRegister
		);

	DWORD
    SSCatDBPauseResumeService(
        [in]									handle_t    h,
		[in]									DWORD		ProcessID,
		[in]									DWORD		dwFlags,
        [in]									BOOL		fResume
		);
}