Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

106 lines
2.2 KiB

//____________________________________________________________________________
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1996.
//
// File: security.cxx
//
// Contents:
//
// Classes:
//
// Functions:
//
// History: 3/5/1996 RaviR Created
//
//____________________________________________________________________________
#include "..\pch\headers.hxx"
#pragma hdrstop
#include <mstask.h>
#include "..\folderui\dbg.h"
#include "..\folderui\macros.h"
#include "defines.h"
#include "schedui.hxx"
// {1F2E5C40-9550-11CE-99D2-00AA006E086C}
CLSID CLSID_RShellExt = {
0x1F2E5C40,
0x9550,
0x11CE,
{ 0x99, 0xD2, 0x00, 0xAA, 0x00, 0x6E, 0x08, 0x6C }
};
//
// This function is a callback function from property sheet page extensions.
//
BOOL CALLBACK
I_AddPropSheetPage(
HPROPSHEETPAGE hpage,
LPARAM lParam)
{
PROPSHEETHEADER * ppsh = (PROPSHEETHEADER *)lParam;
if (ppsh->nPages < MAX_PROP_PAGES)
{
ppsh->phpage[ppsh->nPages++] = hpage;
return TRUE;
}
return FALSE;
}
HRESULT
AddSecurityPage(
PROPSHEETHEADER &psh,
LPDATAOBJECT pdtobj)
{
TRACE_FUNCTION(AddSecurityPage);
HRESULT hr = S_OK;
IShellPropSheetExt * pShellPropSheetExt = NULL;
do
{
hr = CoCreateInstance(CLSID_RShellExt, NULL, CLSCTX_ALL,
IID_IShellPropSheetExt, (void **)&pShellPropSheetExt);
CHECK_HRESULT(hr);
BREAK_ON_FAIL(hr);
IShellExtInit * pShExtInit = NULL;
hr = pShellPropSheetExt->QueryInterface(IID_IShellExtInit,
(void **)&pShExtInit);
if (SUCCEEDED(hr))
{
hr = pShExtInit->Initialize(NULL, pdtobj, NULL);
CHECK_HRESULT(hr);
pShExtInit->Release();
if (SUCCEEDED(hr))
{
hr = pShellPropSheetExt->AddPages(I_AddPropSheetPage,
(LPARAM)&psh);
CHECK_HRESULT(hr);
}
}
} while (0);
if (pShellPropSheetExt)
{
pShellPropSheetExt->Release();
}
return hr;
}