J'ai un projet ATL C++ Visual Studio 2008 qui est une extension d'espace de noms pour l'Explorateur Windows.Implémentation d'une interface d'affichage de l'extension Windows Explorer
Dans la barre d'outils pour Windows Explorer dans Windows XP, il y a une icône étiquetée "vues". Dans une vue normale, il crée un menu déroulant qui permet à l'utilisateur de sélectionner "Vignettes", "Mosaïques", "Icônes", "Liste" ou "Détails" comme type de vue.
Quelle interface dois-je mettre en œuvre dans mon projet pour ce bouton? À l'heure actuelle, je implémente IShellFolder et IShellView. Lorsque je clique sur le bouton "Vues" alors que dans mon espace de noms, rien ne se passe. Aucun menu n'est affiché et l'utilisateur n'a pas la possibilité de changer de vue.
Merci, paulh
Edit: Voici ma mise en œuvre de IShellView, IServiceProvider et IFolderView
class ATL_NO_VTABLE CShellViewImpl :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass< CShellViewImpl, &CLSID_ShellViewImpl >,
public IDispatchImpl< IShellViewImpl,
&IID_IShellViewImpl,
&LIBID_MyLib,
/*wMajor =*/ 1,
/*wMinor =*/ 0 >,
public IShellView,
public IServiceProvider,
public IFolderView
{
public:
DECLARE_REGISTRY_RESOURCEID(IDR_SHELLVIEWIMPL)
BEGIN_COM_MAP(CShellViewImpl)
COM_INTERFACE_ENTRY(IShellViewImpl)
COM_INTERFACE_ENTRY(IServiceProvider)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IShellView)
COM_INTERFACE_ENTRY(IFolderView)
END_COM_MAP()
DECLARE_PROTECT_FINAL_CONSTRUCT()
// IXYZ implementations...
};
IServiceProvider :: QueryService() est jamais appelé
trouver ici, échantillon à vous aider: [Catalogue d'exemple de cadre de code tout-en-un] (http://1code.codeplex.com/wikipage?title=All-In-One%20Code%20Framework%20Sample%20Catalog) – lsalamon