IP Library Granted Patent US 7,478,085
Granted Patent B2
US 7,478,085 · App. 11/096,871 · Granted Jan 13, 2009

Ability for developers to easily find or extend well known locations on a system

Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,478,085
App. No.
11/096,871
Granted
Jan 13, 2009
Kind
B2
Abstract

A method and data structure for creating and accessing folders stored in well known locations. The data structure and method utilizes a set of APIs to create and manage well known folders on a system and/or to locate specific well known folders. The invention provides interfaces to create, locate, extend, and enumerate well known folders. In addition, the invention allows a developer and/or user to customize properties of well known folders.

Claims (48)

1. One or more computer storage media having computer-executable instructions embodied thereon that, when executed by a processor, perform a method of communication between a first component and a second component accommodated on computing device(s), the method comprising:

receiving a call from the first component requesting a location of a known folder, the call including an identification of the known folder, wherein the identification comprises ordinal values that provide system-independent indicia of the location of the known folder, and wherein the known folder includes an object that facilitates running an application known to an operating system by way of a hierarchical file structure;

based on the identification, providing an identity parameter that represents a unique identifier of the known folder within the hierarchical file structure;

searching a registry for the location of the known folder by examining the unique identifier against known folder IDs corresponding to storage locations;

determining an appropriate known folder that corresponds to a storage location of the storage locations that satisfies the search of the registry;

verifying that the storage location is valid by locating the appropriate known folder associated with the storage location within the hierarchical file structure on a storage device;

accessing data from the appropriate known folder at the storage location; and

adding to the appropriate known folder a new property that informs at least one of developers and users of usage by the first component of the appropriate known folder.

2. The one or more computer storage media of claim 1 , wherein the storage location comprises a local hard drive.

3. The one or more computer storage media of claim 1 , wherein the storage location comprises a network drive.

4. The one or more computer storage media of claim 1 , wherein the storage location comprises a website.

5. The one or more computer storage media of claim 1 , further comprising:

determining that no storage location in the registry corresponds to the identification in the call;

creating a new known folder and providing a location of the new known folder to the second component.

6. The one or more computer storage media of claim 1 , wherein the identification includes a CSIDL value of the known folder.

7. The one or more computer storage media of claim 1 , further comprising:

recognizing that the appropriate known folder is relocated from the corresponding storage location on the storage device to a new location in a network;

updating the storage location of the appropriate known folder to the new location within the registry; and

accessing data from the appropriate known folder at the new location.

8. One or more computer storage media having computer-executable instructions embodied thereon that, when executed by a processor. perform a method of communication between an application and an operating system accommodated on computing device(s), the method comprising:

recognizing the application is initialized on the operating system;

incident to initialization, receiving a call at the operating system having a globally unique identifier (GUID) from the application, wherein the GUID includes system-independent ordinal values for identifying a new known folder;

extracting the GUID from the call;

requesting the application to specify a relative location of the new known folder and to set a parameter that establishes a category of the new known folder, wherein the new known folder belongs to a category that comprises at least one of a virtual folder that appears in a hierarchical file structure without actual file system folders associated therewith, a fixed-file system having file system folders whose location is fixed upon installation of the operating system, a common folder having file system folders that are used for sharing data and settings between user, and a per-user folder having file system folder that are located in an individual's profile and owned by the individual;

automatically creating a new known folder based on the extracted GUID, wherein the new known folder includes a custom property that informs at least one of developers and users of usage of the new known folder by the application, and wherein the new known folder is created in the relative location on the hierarchical file structure;

registering the new known folder within a registry; and

enumerating a listing of known folders that are accessible to the operating system, wherein enumerating includes transmitting a path of the new known folder to the application, and wherein the path indicates the relative location where the new known folder is created.

9. The one or more computer storage media of claim 8 , wherein the call further includes properties for use in the creation of the new known folder.

10. The one or more computer storage media of claim 9 , wherein the properties of the new known folder are selected from the group consisting of a category, a pszName, a pszCreator, a pszDescription, a pfidParent, a pszRelativePath, a pszParsingName, a pszTooltip, a pszLocalizedName, a pszlcon, a pszSecurity, dwAttributes, a pszLegacyPath, a clsidHandler, and kdfFlags.

11. The one or more computer storage media of claim 8 , further comprising:

receiving a call querying category type of a specified known folder.

12. The one or more computer storage media of claim 8 , further comprising:

receiving a request for the enumeration of all known folders.

13. The one or more computer storage media of claim 8 , wherein the operating system stores a set of application programming interfaces (APIs).

14. The one or more computer storage media of claim 13 , wherein the set of application programming interfaces are selected from the group consisting of an IKnownFolder, an IKnownFolderManager, an IEnumKnownFolder interface, and an IKnownFolderHandler.

15. The one or more computer storage media of claim 13 , wherein the set of application programming interfaces are selected from the group consisting of SHGetFolderLocationEx( ), SHGetFolderPathEx( ), and SHSetFolderPath Ex( ).

16. One or more computer storage media having computer-executable instructions embodied thereon that, when executed by a processor, perform a method of communication between an application and an operating system accommodated on computing device(s), the method comprising:

receiving a call from the application including an identification of a folder and a token parameter that specifies an owner of the folder and includes a valid user token, wherein the identification comprises ordinal values that provide system-independent indicia of the location of the known folder, and wherein the folder includes an object that facilitates running the application known to the operating system by way of a hierarchical namespace structure, wherein an identity of the folder has been made known to the hierarchical namespace structure of the operating system and a plurality of application programs;

searching a registry for the location of the folder, wherein the location of the folder has been made known to a hierarchical namespace structure of the operating system and the plurality of application programs;

determining a location of the folder within the hierarchical namespace structure;

accessing data from the folder at the determined location, wherein accessing comprises:

(a) impersonating the owner of the folder by specifying the valid user token; and

(b) accessing an owner's instance of the folder; and

adding to the folder a new property that informs at least one of developers and users of usage by the application of the folder.

17. The one or more computer storage media of claim 16 , wherein the determined location comprises a local hard drive.

18. The one or more computer storage media of claim 16 , wherein the determined location comprises a network drive.

19. The one or more computer storage media of claim 16 , wherein the determined location comprises a website.

20. The one or more computer storage media of claim 16 , further comprising creating a new folder, which has been made known to an operating system shell and a plurality of application programs, if the received folder identification is not valid and providing a location of the new folder, which has been made known to an operating system shell and a plurality of application programs, to the second component.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2006
From: RAWAT, ANSHUL; WENTZ, BRIAN D.; GUZAK, CHRIS J.; DEVORCHIK, DAVID G.; BREZAK, JOHN E.; ZHU, MING; SAMJI, MOHAMMED A.
To: MICROSOFT CORPORATION
Reel/Frame 018508/0136 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2005
From: RAWAT, ANSHUL; WENTZ, BRIAN D.; GUZAK, CHRIS J.; DE VORCHIK, DAVID G.; BREZAK, JOHN E.; ZHU, MING; SAMJI, MOHAMMED A.
To: MICROSOFT CORPORATION
Reel/Frame 016049/0217 →
Continuity (1)
Related Publication 20060242154A1 · Oct 26, 2006