Ihre beste Quelle der Informationen und der Nachrichten ungefähr Treiber, Vista und Treiber auf dem Internet

Vista ARTIKEL OBERSEITE 50 Vista VIDEOS Vista WEICH Vista HILFE

Shell namespace Verlängerung: Ermöglichen der tiefen Suche


Überblick

Von meinen letzten Pfosten über das Einführen Ihres eigenen Shell namespace, hat es einige große Fragen gegeben, die von den Lesern bekanntgegeben werden. Viele von diesen stammen die Tatsache ab, daß das namespace Beispiel dadurch ziemlich einfach ist, daß es nicht alles Verhalten einführt, das im Forscher möglich ist. Dieses wurde getan, um auf die Kernschritte zu konzentrieren, wenn man ein Arbeitsnamespace eingeführt erhielt. Jedoch gibt es einige Extraschritte, die Sie unternehmen können, die nicht zu viel mehr Kodierung auf Ihrem Teil erfordern, nützlichere Eigenschaften zu addieren. Eine Frage insbesondere, die oben durchaus kommt, ist häufig, wie man in Ihrem namespace tief suchen ermöglicht.

Sie beachten vom vorhandenen namespace Beispiel, daß, wenn Sie eine Suchbezeichnung in den Suchkasten im Forscher eintragen, die Suche nur Einzelteile filtert, die z.Z. in der Ansicht sind. Es sucht nicht in die Hefte. In den unten Bildern versuchen wir, nach „zwei“ im Suchkasten zu suchen, der nur 1 Einzelteil ergibt. So waren die Vorhefte nicht enthalten.

Filter-Suche

Filter-Resultate - flach

Was muß ein namespace Implementer tun, um Vorhefte in ihren namespace Suchresultaten mit einzuschließen? Dieses ist wirklich ziemlich einfach.

Einführen von IShellFolderViewCB und von IFolderViewSettings

In unserem vorhergehenden Code führten wir nicht ein IShellFolderViewCB für unser namespace. Dieses erlaubt, daß Ihr namespace von den Fällen mitgeteilt wird, die mit der Ansicht verbunden sind. Eine Implementierung von IShellFolderViewCB kann in Ihrem Anruf zu spezifiziert werden SHCreateShellFolderView. Dieses ist wahlweise freigestellt und vorher waren wir gerecht, NULL für dieses führend. Wir müssen eine diese Kategorie verursachen Werkzeuge IShellFolderViewCB sowie IFolderViewSettings. Für unsere IFolderViewSettings Implementierung müssen wir nur eine Zufuhr für zur Verfügung stellen GetFolderFlags Methode. Es ist durch diese Methode, daß wir Shell mitteilen, daß wir tiefe Suchen innerhalb unseres namespace durchführen möchten.

IFACEMETHODIMP CFolderViewCB:: GetFolderFlags (__out FOLDERFLAGS *pfolderMask, __out FOLDERFLAGS *pfolderFlags)

{

wenn (pfolderMask)

{

*pfolderMask = FWF_USESEARCHFOLDER;

}

wenn (pfolderFlags)

{

*pfolderFlags = FWF_USESEARCHFOLDER;

}

Rückhol-S_OK;

}

Wie Sie von der oben genannten Implementierung von GetFolderFlags sehen können, interessieren uns wir nur, um Shell der FWF_USESEARCHFOLDER Markierungsfahne mitzuteilen. Dieses erklärt Shell, daß unser namespace das Suchheft für das Durchführen des Stapelns und des Suchens benutzen sollte. Sie konnten auch spezifizieren Sie andere Markierungsfahnen das Aussehen und das Verhalten Ihres namespace ändern.

Der geänderte Code für diese Probe wird unten verbunden. Sie beachten, daß die Implementierung von IShellFolderViewCB und von IFolderViewSettings ziemlich spärlich ist - die meiste Methoden gerechte Rückkehr E_NOTIMPL, da wir sie nicht hier verwenden. You can implement these yourself if you see the need to extend your code.
Now that we have notified the Shell to use the Search Folder, we can perform deep searches within our Namespace. When we perform the same search we did previously, we now get the following results:

deep search

This Namespace simply generates 10 virtual items to a default depth of 5. The Search enumerates the contents of the Namespace to that depth. It should also be called out that we had to implement our namespace's ParseDisplayName method in order for our namespace to function in the Search folder.

*Please note that the method described here only works with the default shell view (Defview). It is not supported for custom IShellView implementations.

Building the FolderView SDK Sample

  1. To build the FolderViewImpl sample, be sure to download and install the Windows SDK.
  2. Download the modified FolderView SDK sample
  3. Launch FolderViewImpl.sln in Visual Studio (The solution file is for Visual Studio 2008)
  4. Open the properties for the project
  5. Add a path to the SDK includes to the C/C++ - General page
  6. Add a path to the SDK libs to the Linker – General page
  7. Build

Installing the FolderView SDK Sample

  1. Once you have built the sample, copy the FolderViewImpl.dll and FolderViewImpl.propdesc to the same directory
  2. From an elevated cmd window, regsvr32 FolderViewImpl.dll
  3. Restart explorer
  4. Open explorer to Computer
  5. There should be a list item named “FolderView SDK Sample”

Popularity: 1%


Written by chrdavis. Read more great feeds at is source WEBSITE
no comments.
Read more articles on namespace and otherSoftware and extension and Search and Organize and shell and Coding and Programming and vista and search and API and Windows Vista.

Related articles

No comments

There are still no comments on this article.

Leave your comment...

If you want to leave your comment on this article, simply fill out the next form:




You can use these XHTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong> .