windows-nt/Source/XPSP1/NT/net/upnp/upnpui/dll/oncommand.h
2020-09-26 16:20:57 +08:00

102 lines
2.8 KiB
C

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997.
//
// File: O N C O M M A N D . H
//
// Contents: Command handler prototypes for the InvokeCommand code.
//
// Notes:
//
// Author: jeffspr 4 Nov 1997
//
//----------------------------------------------------------------------------
#pragma once
#ifndef _ONCOMMAND_H_
#define _ONCOMMAND_H_
//---[ Typedefs ]-------------------------------------------------------------
// Typedefs for the functions that we'll GetProcAddress from the
// NetWare config DLL
typedef HRESULT (WINAPI *FOLDERONCOMMANDPROC)(
LPITEMIDLIST *,
ULONG,
HWND,
LPSHELLFOLDER);
struct FoldOnCommandParams
{
FOLDERONCOMMANDPROC pfnfocp;
LPITEMIDLIST * apidl;
ULONG cidl;
HWND hwndOwner;
LPSHELLFOLDER psf;
HINSTANCE hInstFolder;
};
typedef struct FoldOnCommandParams FOLDONCOMMANDPARAMS;
typedef struct FoldOnCommandParams * PFOLDONCOMMANDPARAMS;
HRESULT HrCommandHandlerThread(
FOLDERONCOMMANDPROC pfnCommandHandler,
LPITEMIDLIST * apidl,
ULONG cidl,
HWND hwndOwner,
LPSHELLFOLDER psf);
DWORD WINAPI FolderCommandHandlerThreadProc(LPVOID lpParam);
//---[ Internal versions of the command handlers ]----------------------------
//
// These are called by the standard handler functions once they've retrieved
// the actual data from the pidls. They are also called from those pieces
// of the code that keep the native data, such as the tray
//
//
//---[ Standard command handler functions ]----------------------------------
//
// These are the pidl based functions that are called from the shell folder
//
HRESULT HrFolderCommandHandler(
UINT uiCommand,
LPITEMIDLIST * apidl,
ULONG cidl,
HWND hwndOwner,
LPCMINVOKECOMMANDINFO lpici,
LPSHELLFOLDER psf);
// All of these below handle individual commands
//
HRESULT HrOnCommandInvoke(
LPITEMIDLIST * apidl,
ULONG cidl,
HWND hwndOwner,
LPSHELLFOLDER psf);
HRESULT HrOnCommandProperties(
LPITEMIDLIST * apidl,
ULONG cidl,
HWND hwndOwner,
LPSHELLFOLDER psf);
HRESULT HrOnCommandDelete(
LPITEMIDLIST * apidl,
ULONG cidl,
HWND hwndOwner,
LPSHELLFOLDER psf);
HRESULT HrOnCommandCreateShortcut(
LPITEMIDLIST * apidl,
ULONG cidl,
HWND hwndOwner,
LPSHELLFOLDER psf);
#endif // _ONCOMMAND_H_