//+-------------------------------------------------------------------------
//
//  Microsoft Windows
//
//  Copyright (C) Microsoft Corporation, 1999 - 1999
//
//  File:       wia.h
//
//--------------------------------------------------------------------------


#ifndef __SHELLEXT_H_INCLUDED
#define __SHELLEXT_H_INCLUDED

#include <windows.h>
#include <shlobj.h>



interface IWiaItem;


STDAPI_(HRESULT) GetIDAFromDataObject( LPDATAOBJECT pDataObject, LPIDA * ppida );
STDAPI_(HRESULT) IMGetNameFromIDL( LPITEMIDLIST pidl, LPTSTR pName, UINT cch );
STDAPI_(HRESULT) IMGetDeviceIdFromIDL( LPITEMIDLIST pidl, LPWSTR pWiaItemRootId, UINT cch );
STDAPI_(HRESULT) GetDeviceFromDeviceId( LPWSTR pWiaItemRootId, REFIID riid, LPVOID * ppWiaItemRoot );
STDAPI_(HRESULT) MakeFullPidlForDevice( LPWSTR pDeviceId, IN OUT LPITEMIDLIST * ppidl );
STDAPI_(HRESULT) IMGetItemFromIDL (LPITEMIDLIST pidl, IWiaItem **ppItem);

// types of extensions
#define WIA_UI_PROPSHEETHANDLER     0
#define WIA_UI_CONTEXTMENUHANDLER   1
#define WIA_UI_ICONHANDLER          2

typedef HRESULT (WINAPI *WIAMAKEFULLPIDLFORDEVICE)(
    LPWSTR pDeviceId,
    IN OUT LPITEMIDLIST * ppidl
);

// Module name.  To be used with LoadLibrary
#define WIA_SHELL_EXTENSION_MODULE      TEXT("wiashext.dll")



#endif //__SHELLEXT_H_INCLUDED


