USRE45472E1 - Rerouting media to selected media applications - Google Patents

Rerouting media to selected media applications Download PDF

Info

Publication number
USRE45472E1
USRE45472E1 US13/620,704 US201213620704A USRE45472E US RE45472 E1 USRE45472 E1 US RE45472E1 US 201213620704 A US201213620704 A US 201213620704A US RE45472 E USRE45472 E US RE45472E
Authority
US
United States
Prior art keywords
data stream
browser
mime
registry
rendering process
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime, expires
Application number
US13/620,704
Inventor
John Robinson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Inc
Original Assignee
Facebook Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Facebook Inc filed Critical Facebook Inc
Priority to US13/620,704 priority Critical patent/USRE45472E1/en
Assigned to AOL LLC reassignment AOL LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: AMERICA ONLINE, INC.
Assigned to FACEBOOK, INC. reassignment FACEBOOK, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AOL INC.
Assigned to AOL INC. reassignment AOL INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AOL LLC
Assigned to AMERICA ONLINE, INC. reassignment AMERICA ONLINE, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ROBINSON, JOHN
Application granted granted Critical
Publication of USRE45472E1 publication Critical patent/USRE45472E1/en
Assigned to META PLATFORMS, INC. reassignment META PLATFORMS, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: FACEBOOK, INC.
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • H04L29/06
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4143Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4782Web browsing, e.g. WebTV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software

Definitions

  • the disclosure relates generally to the manipulation of content being accessed by a computer, and more specifically to rerouting multimedia content received by a computer having an operating system that maintains default settings for specific data types of multimedia content.
  • a browser is often used to receive, process, and display electronic media content made available through a computer network or from the memory of a local computer.
  • the browser may include functionality for processing and displaying some types of media content to the user, but may need to call upon and export data to external media players when other types of media content need to be processed and displayed to the user.
  • the browser may access a registry of alternate media players available for processing particular types of media content, and certain alternate media players may be designated as default players for certain media types. If multiple instances of a single browser or several different browsers are loaded, however, the media players specified by the registry are applied to each of the browser loads.
  • a data stream may be processed using a computer system by receiving the data stream using a browser application, detecting a content type of data in the data stream, temporarily overriding a default rendering process otherwise associated with the content type detected for the data in the data stream by associating a particular rendering process with the data stream based on the type of data in the data stream, and routing the data stream to the particular rendering process.
  • Implementations may include one or more of the following features.
  • the data in the data stream may be a Multipurpose Internet Mail Extension (MIME) data, which may be received in response to a request from the browser application.
  • MIME Multipurpose Internet Mail Extension
  • the default rendering process may be identified in a registry of the computer system. It may be temporarily overridden by discriminating among internal and external instances of the browser application used to receive the data stream, and temporarily overriding the default rendering process only if the browser application is an internal instance. As such, the data stream may be routed to the default rendering process if the browser application is an external instance.
  • the default rendering process may be identified in a registry of the computer, which is supplemented with the particular rendering process in order to override the default rendering process if the browser application is an internal instance.
  • the data stream may be processed using the temporary rendering process, which thereafter is disassociated with the type of data in the data stream.
  • the content type may be redefined after routing the data stream to prevent subsequent processing of the data stream by the default rendering.
  • a data stream stored on a computer readable medium may be processed by receiving a data stream using a browser application, identifying a stream type for the data stream, and directing the data stream away from a data process designated as a default by the computer system based on the data type identified for the data stream.
  • Implementations may include one or more of the following features.
  • the process may include determining whether a browser is embedded as an internal instance of a software application, such that the data stream is directed away from the data process designated as the default when determined to be an internal instance.
  • the data type may be a Multipurpose Internet Mail Extensions (MIME) data type.
  • MIME Multipurpose Internet Mail Extensions
  • a data stream may be processed by calling a data stream using a browser running on a computer system, detecting a first type of data associated with the data stream called by the browser, and redefining the first type of data as a second type of data.
  • Implementations may include one or more of the following features.
  • the first and second types of data may be Multipurpose Internet Mail Extensions (MIME) standard types.
  • MIME Multipurpose Internet Mail Extensions
  • the processing may include receiving notification in the browser that a data stream is available for filtering by the MIME filter, and/or activating a multimedia subsystem player running on the computer system to render the data stream.
  • the processing may include passing the data stream to the player.
  • FIG. 1 is a block diagram of a computer system.
  • FIG. 2 shows a typical graphical user interface (GUI) environment.
  • GUI graphical user interface
  • FIG. 3 is a screenshot of a browser window.
  • FIG. 4 is a flow chart of a process for determining if a data stream should be rendered with a desired alternate media player.
  • FIG. 5 is a flow chart of a process for routing electronic media content to a desired software application.
  • FIG. 6 is a flow chart of a process for sinking a data stream.
  • FIG. 7 is a flow chart of a process for routing electronic media content to a desired software application.
  • a computer system 100 represents a hardware setup for executing software that allows a user to perform tasks such as communicating with other computer users, accessing various computer resources, and viewing, creating, or otherwise manipulating electronic media content—that is, any combination of text, images, movies, music or other sounds, animations, 3D virtual worlds, and links to other objects.
  • the computer system 100 of FIG. 1 also may be programmed with computer-readable instructions to enable content to be perceived (for example, viewed) without being captured (for example, copied, saved, or printed).
  • the system includes various input/output (I/O) devices (for example, mouse 103 , keyboard 105 , display 107 ) and a general purpose computer 110 having a central processor unit (CPU) 121 , an I/O unit 117 and a memory 109 that stores data and various programs such as an operating system 111 , and one or more application programs 113 .
  • the computer system 100 also may include some sort of communications card or device 123 (for example, a modem or network adapter) for exchanging data with a network 127 through a communications link 125 (for example, a telephone line).
  • a computer system can access electronic content or other resources either stored locally at a local client system 202 (for example, a personal or laptop computer), remotely at one or more server systems 200 , or at other client systems 202 .
  • a server system 200 is a host computer that provides subscribers with online computer data and services such as e-mail, e-commerce, chat rooms, Internet access, electronic newspapers and magazines.
  • a server system 200 typically is a network of interconnected server computers rather than a single monolithic entity.
  • the servers may be physically dispersed from each other, and each may be dedicated to its own set of duties and/or to a particular geographical region. Where the server computers are physically dispersed, they may be interconnected by a network of communication links
  • Each client system 202 runs client software that enables communication with corresponding software running on the server system 200 .
  • the client systems 202 communicate with the server system 200 through various channels 204 and lines 206 , such as a modem connected to a telephone line, a direct Internet connection using a transfer protocol such as TCP/IP (Transmission Control Protocol/Internet Protocol), a cable modem and cable line(s), an integrated services digital network (ISDN), or some other transfer protocol.
  • the server system 200 is responsible for receiving input from the client systems 202 , manipulating the collective body of input information (and possibly information from other sources) into a useful format, and retransmitting the formatted information back to one or more clients 202 for output on an output device, such as a display screen.
  • a “browser” is an example of client software that enables access and viewing of electronic content stored either locally or remotely, such as in a network environment of interconnected computer systems (for example, local area network (LAN), wide area network (WAN), intranet, Internet).
  • a browser typically is used for displaying documents described in Hyper-Text Markup Language (HTML) and stored on servers connected to a network such as the Internet.
  • HTML Hyper-Text Markup Language
  • a user instructs a browser to access an electronic document (e.g., a web page) by specifying a network address—or Uniform Resource Locator (URL)—indicating the location of a desired web page.
  • the browser contacts the corresponding server 200 hosting the requested web page, retrieves the one or more files that make up the web page, and then displays the web page in a window on the user's computer screen.
  • URL Uniform Resource Locator
  • FIG. 3 is a screenshot of a browser application 300 displaying a typical web page 302 .
  • a single web page 302 may include several different files of similar or different data types 304 (for example, text, graphics, images, virtual worlds, sounds, and movies).
  • the browser 300 may display or play data content using its own internal functionality or, if data content contained in web page 302 is a type that cannot be displayed with the browser's internal functionality, it may export the data content to an alternate media player so that the data content may be processed and displayed by the alternate media player.
  • Web page 302 can include links 306 pointing to other resources (for example, other web pages or individual files) available at the server system 200 or through the network 127 .
  • Links 306 can take virtually any visual form. For example, they can appear as a text string, as a graphical image, or as a combination thereof.
  • Each link 306 has an associated URL pointing to a location on the network 127 .
  • the browser may retrieve the web page (or other resources, such as, for example, movies or sound files) corresponding to the URL associated with the link automatically and may attempt to display and execute the electronic information of the retrieved web page or resource. If the browser cannot display and execute a data type contained in the retrieved web page or resource with its internal functionality, it may export the data content to an alternate media player application, so that the data content may be processed and displayed by the alternate media player.
  • IE Microsoft Internet ExplorerTM
  • IE typically may be used as a standalone application, but it also may be used by other applications, for example, as an ActiveXTM component to allow those applications to call upon IE's functionality and have IE's functionality blend in with and appear as a component and integral part of those applications.
  • Some applications can embed IE functionality using the ActiveX component to provide a web-browsing and information display capability, but without the outward appearance that IE presents to a user as a standalone application.
  • a software application provided by an Internet Service Provider (ISP) to enable its subscribers access to the ISP's servers may use IE functionality as an ActiveX component, but may display a non-IE graphical user interface (GUI) to the subscriber, so that subscribers identify the application with the ISP, rather than with IE.
  • ISP Internet Service Provider
  • GUI graphical user interface
  • Such an embedded instance of IE may be referred to as an “internal browser,” as contrasted with using IE as a standalone application, in which case, IE as a standalone application may be referred to as an “external browser.”
  • IE is used as an internal browser or an external browser to locate and access data from either a local or remote location, it may be used to retrieve a stream of data.
  • data stream types include text, hypertext, graphics, sound-files, and multimedia.
  • IE generally receives information indicating the type of data included in the stream, or otherwise gleans the type of data from the stream.
  • IE uses a content-type encoding standard known as the MIME (Multipurpose Internet Mail Extensions) standard to specify the type of data included in the media stream.
  • MIME Multipurpose Internet Mail Extensions
  • a MIME type includes a ⁇ type>/ ⁇ subtype> specifier.
  • Examples include “text/html” for an HTML type text stream, “text/plain” for a plain text type stream, and “image/jpeg” for a jpeg image stream.
  • the MIME type of the stream may be identified using one or more diagnostic tests or filters.
  • IE can include and access built-in functionality to reproduce or display some types of media, such as HTML, plain text, and JPEG images, while including functionality to export those and other media types, such as sound files and video files, for reproduction by one or more alternate media players, such as RealNetworks RealPlayer® or Microsoft Windows Media Player®.
  • the MIME type associated with a data stream may be used to determine whether the media stream should be reproduced and displayed by the browser or whether the media stream should instead be exported by the browser for reproduction and display by an alternate player.
  • IE allows for the registration of media players that are capable of, and ultimately responsible for, reproducing or displaying the media types handled by IE internally, as well as those handled by IE externally, so as to enable desired media players to be specified for particular media types.
  • a mapping from MIME type to media player may be maintained within the operating system (OS).
  • OS operating system
  • a registry of mappings (Windows® registry) is maintained that associates data stream types with media players. Under normal circumstances, this mapping is used to resolve the appropriate media player for an incoming data stream, whether IE is running as an internal or external browser.
  • an application using IE as an ActiveX component may modify the mapping if media players other than those specified in the Windows® registry are desired. This modification may be performed by changing the Windows® registry itself, or by overriding or supplementing the Windows® registry with other or additional registrations. In this way, it is possible to control the choice of media player, without modifying the Windows® registry by modifying the choice of the alternate media player to which a data stream is directed when IE operates as an external browser.
  • analysis 400 of a data stream is performed to determine whether an alternate media player should be called to play the data stream.
  • analysis is performed to determine whether the browser instance is internal or external (step 420 ).
  • a MIME filter is applied to the data stream.
  • a MIME filter is an asynchronous pluggable protocol (APP) that is implemented as a Component Object Model (COM) used to implement a set of COM interfaces.
  • the MIME filter typically is invoked for a specified MIME type and is used to perform some operation relative to that MIME type. In this instance, it is used to discriminate between internal instances and external instances of the browser, and to load temporary Windows® registrations for MIME types or to perform specified functions for the MIME types upon the occurrence of an internal browser instance (described later with respect to step 440 ).
  • IProtocolSink is an interface for pluggable MIME filters that is used to receive notifications if/when data is available for filtering. IProtocolSink allows the APP to obtain a window handle for the client performing the bind operation. Although this window handle typically is used for other purposes, it can be used to determine whether an instance of a MIME filter originated from an internal browser by examining the class name of the reported window handle.
  • the data stream may be handled using the default process (step 430 ). However, if the browser instance is internal, then action may be taken to render the data stream using a media player according to mappings other than those maintained for external instances of the browser (step 440 ), which media player may or may not differ from the media player identified by the mappings maintained for external instances (hereinafter “an alternative media player”) as described, for example, with respect to FIGS. 5-7 .
  • a MIME filter may be used to identify a media player to be used in rendering a data stream retrieved or directed to an internal instance of the browser.
  • the MIME type for a data stream is checked against registrations or mappings that are maintained for internal instances of the browser (step 510 ).
  • MIME filters can be registered either permanently or temporarily. Permanent MIME filters are registered within the Windows® registry and tend to affect all instances of IE, unless pre-empted by temporary MIME filters. Temporary MIME filters are associated with a specific instance of IE and tend to be given priority over permanent MIME filters when handling a data stream. When multiple temporary MIME filters are registered for a particular MIME type, the order of selection among the multiple temporary MIME filters may be inverted relative to the order used for their registration (e.g., the most recently registered MIME filter is selected first), or otherwise. In this instance, temporary MIME filters may be loaded when an internal instance of the browser is detected/invoked and removed when that internal instance of the browser is shut down.
  • a MIME filter is not registered for the MIME type of the data stream, the data stream may be handled using some other default process (step 520 ). If there is a temporary or permanent MIME filter that is registered for the data stream's MIME type, an instance of that MIME filter is established (step 530 ).
  • analysis is performed to determine whether the data stream was requested by an internal instance of a browser (step 540 ). This analysis may be performed as described above in FIG. 4 . If the data stream was not requested by an instance of an internal browser, additional action may not be required and the default media player may be called to render the data (step 550 ).
  • the registry structure is modified to include registrations of media players appropriate for internal instances of the browser or some other list of alternate media player registrations is accessed, and that modified or alternate registry is analyzed to determine which media player is registered for the MIME type (step 560 ). Then, an instance of an appropriate alternate media player is established (step 570 ) and the data stream is routed for rendering to the alternate media player (step 580 ). Absent further processing, after the media stream is rendered, the MIME filter returns the data stream to URLMON. Therefore, to prevent invocation of a second media player according to the modified Windows® registry, it may be desirable or necessary to sink the data stream (step 590 ).
  • FIG. 6 illustrates one implementation for sinking a call for a default media player ordinarily generated for data streams of similar MIME type by external instances of a browser (step 590 ).
  • the MIME filter changes the MIME type of the data stream returned to URLMON to a predetermined MIME type (step 610 ) for which no media player or a dummy media player has been registered.
  • the browser detects the altered MIME type in the data stream, the browser will initiate either no media player or an instance of this dummy media player, as appropriate (step 620 ).
  • the modified data stream is routed to this dummy media player, which receives the data stream and either discards the data stream or performs some trivial or background function on the data stream.
  • a data stream also can be directed to an alternate media player using an API hooking approach.
  • This alternate approach provides a similar result to the procedure described above in FIGS. 5 and 6 .
  • the instance of the browser is analyzed to determine whether it is an internal browser or an external browser (step 710 ). If the browser is not an internal browser, no additional action is required and the browser will function according to default settings (step 720 ).
  • the browser is an internal browser
  • calls used to initiate the creation of a default bind context that is ordinarily created for each invocation of a browser are intercepted (step 730 ), preferably before the browser can create the bind context necessary to invoke the browser.
  • the bind context is an object typically used to hold information useful in overriding default information registered with the operating system. Since a bind context ordinary is created for each invocation of a browser, any override of default information is used only for the current transaction.
  • IAT Import Address Table
  • PE Portable Executable
  • DLL Dynamic Link Library
  • calls to imported functions may be intercepted by manipulating the function pointers within a dispatch table rather than calling the function directly.
  • the intercepted call may be used to provide a pointer, IBindCtx, to the bind context that can be used later.
  • the alternate media player is registered in the bind context (step 740 ).
  • a pointer to the bind context may be required for this registration.
  • the IBindCtx pointer (e.g., acquired during step 730 ) can be used for this purpose. Additionally, the IBindCtx pointer can be passed as a parameter to the function call RegisterMediaTypeClass to register the alternate media player.
  • the bind context is now available to the browser (step 750 ).
  • the browser uses settings from the bind context to override the default media player registration with the alternate media player.
  • the browser calls the alternate media player to render the data stream instead of the default media player (step 760 ).
  • the browser then initiates an instance of the alternate media player (step 770 ) and the data stream is routed to it for rendering (step 780 ).

Abstract

A data stream may be processed using a computer system by receiving the data stream using a browser application, detecting a content type of data in the data stream, temporarily overriding a default rendering process otherwise associated with the content type detected for the data in the data stream by associating a particular rendering process with the data stream based on the type of data in the data stream, and routing the data stream to the particular rendering process. The default rendering process may be identified in a registry of the computer system. It may be temporarily overridden by discriminating among internal and external instances of the browser application used to receive the data stream, and temporarily overriding the default rendering process only if the browser application is an internal instance.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of U.S. patent application Ser. No. 09/971,086, filed Oct. 5, 2001 now U.S. Pat. No. 7,343,419, and entitled “Rerouting Media to Selected Media Applications,” which claims priority from U.S. Provisional Application No. 60/237,697, filed on Oct. 5, 2000, both of which are incorporated herein by reference in their entirety.
TECHNICAL FIELD
The disclosure relates generally to the manipulation of content being accessed by a computer, and more specifically to rerouting multimedia content received by a computer having an operating system that maintains default settings for specific data types of multimedia content.
BACKGROUND
A browser is often used to receive, process, and display electronic media content made available through a computer network or from the memory of a local computer. The browser may include functionality for processing and displaying some types of media content to the user, but may need to call upon and export data to external media players when other types of media content need to be processed and displayed to the user. The browser may access a registry of alternate media players available for processing particular types of media content, and certain alternate media players may be designated as default players for certain media types. If multiple instances of a single browser or several different browsers are loaded, however, the media players specified by the registry are applied to each of the browser loads.
SUMMARY
In one general aspect, a data stream may be processed using a computer system by receiving the data stream using a browser application, detecting a content type of data in the data stream, temporarily overriding a default rendering process otherwise associated with the content type detected for the data in the data stream by associating a particular rendering process with the data stream based on the type of data in the data stream, and routing the data stream to the particular rendering process.
Implementations may include one or more of the following features. For example, the data in the data stream may be a Multipurpose Internet Mail Extension (MIME) data, which may be received in response to a request from the browser application.
The default rendering process may be identified in a registry of the computer system. It may be temporarily overridden by discriminating among internal and external instances of the browser application used to receive the data stream, and temporarily overriding the default rendering process only if the browser application is an internal instance. As such, the data stream may be routed to the default rendering process if the browser application is an external instance. The default rendering process may be identified in a registry of the computer, which is supplemented with the particular rendering process in order to override the default rendering process if the browser application is an internal instance. The data stream may be processed using the temporary rendering process, which thereafter is disassociated with the type of data in the data stream.
Furthermore, the content type may be redefined after routing the data stream to prevent subsequent processing of the data stream by the default rendering.
In another general aspect, a data stream stored on a computer readable medium may be processed by receiving a data stream using a browser application, identifying a stream type for the data stream, and directing the data stream away from a data process designated as a default by the computer system based on the data type identified for the data stream.
Implementations may include one or more of the following features. For example, the process may include determining whether a browser is embedded as an internal instance of a software application, such that the data stream is directed away from the data process designated as the default when determined to be an internal instance. Furthermore, the data type may be a Multipurpose Internet Mail Extensions (MIME) data type.
In yet another general aspect, a data stream may be processed by calling a data stream using a browser running on a computer system, detecting a first type of data associated with the data stream called by the browser, and redefining the first type of data as a second type of data.
Implementations may include one or more of the following features. For example, the first and second types of data may be Multipurpose Internet Mail Extensions (MIME) standard types. When a MIME filter is loaded into an operating system of the computer, the processing may include receiving notification in the browser that a data stream is available for filtering by the MIME filter, and/or activating a multimedia subsystem player running on the computer system to render the data stream. In addition, the processing may include passing the data stream to the player.
These general and specific aspects may be implemented using a system, a method, or a computer program, or any combination of systems, methods, and computer programs. The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features and advantages will be apparent from the description and drawings, and from the claims.
DESCRIPTION OF DRAWINGS
FIG. 1 is a block diagram of a computer system.
FIG. 2 shows a typical graphical user interface (GUI) environment.
FIG. 3 is a screenshot of a browser window.
FIG. 4 is a flow chart of a process for determining if a data stream should be rendered with a desired alternate media player.
FIG. 5 is a flow chart of a process for routing electronic media content to a desired software application.
FIG. 6 is a flow chart of a process for sinking a data stream.
FIG. 7 is a flow chart of a process for routing electronic media content to a desired software application.
Like reference symbols in the various drawings indicate like elements.
DETAILED DESCRIPTION
Referring to FIG. 1, a computer system 100 represents a hardware setup for executing software that allows a user to perform tasks such as communicating with other computer users, accessing various computer resources, and viewing, creating, or otherwise manipulating electronic media content—that is, any combination of text, images, movies, music or other sounds, animations, 3D virtual worlds, and links to other objects. The computer system 100 of FIG. 1 also may be programmed with computer-readable instructions to enable content to be perceived (for example, viewed) without being captured (for example, copied, saved, or printed).
The system includes various input/output (I/O) devices (for example, mouse 103, keyboard 105, display 107) and a general purpose computer 110 having a central processor unit (CPU) 121, an I/O unit 117 and a memory 109 that stores data and various programs such as an operating system 111, and one or more application programs 113. The computer system 100 also may include some sort of communications card or device 123 (for example, a modem or network adapter) for exchanging data with a network 127 through a communications link 125 (for example, a telephone line).
As shown in FIG. 2, using network 127, a computer system can access electronic content or other resources either stored locally at a local client system 202 (for example, a personal or laptop computer), remotely at one or more server systems 200, or at other client systems 202. An example of a server system 200 is a host computer that provides subscribers with online computer data and services such as e-mail, e-commerce, chat rooms, Internet access, electronic newspapers and magazines.
Users of a host computer's online services typically communicate with one or more central server systems 200 through client software executing on their respective client systems 202. In practice, a server system 200 typically is a network of interconnected server computers rather than a single monolithic entity. The servers may be physically dispersed from each other, and each may be dedicated to its own set of duties and/or to a particular geographical region. Where the server computers are physically dispersed, they may be interconnected by a network of communication links
Each client system 202 runs client software that enables communication with corresponding software running on the server system 200. The client systems 202 communicate with the server system 200 through various channels 204 and lines 206, such as a modem connected to a telephone line, a direct Internet connection using a transfer protocol such as TCP/IP (Transmission Control Protocol/Internet Protocol), a cable modem and cable line(s), an integrated services digital network (ISDN), or some other transfer protocol. The server system 200 is responsible for receiving input from the client systems 202, manipulating the collective body of input information (and possibly information from other sources) into a useful format, and retransmitting the formatted information back to one or more clients 202 for output on an output device, such as a display screen.
A “browser” is an example of client software that enables access and viewing of electronic content stored either locally or remotely, such as in a network environment of interconnected computer systems (for example, local area network (LAN), wide area network (WAN), intranet, Internet). A browser typically is used for displaying documents described in Hyper-Text Markup Language (HTML) and stored on servers connected to a network such as the Internet. A user instructs a browser to access an electronic document (e.g., a web page) by specifying a network address—or Uniform Resource Locator (URL)—indicating the location of a desired web page. In response, the browser contacts the corresponding server 200 hosting the requested web page, retrieves the one or more files that make up the web page, and then displays the web page in a window on the user's computer screen.
FIG. 3 is a screenshot of a browser application 300 displaying a typical web page 302. As shown therein, a single web page 302 may include several different files of similar or different data types 304 (for example, text, graphics, images, virtual worlds, sounds, and movies). The browser 300 may display or play data content using its own internal functionality or, if data content contained in web page 302 is a type that cannot be displayed with the browser's internal functionality, it may export the data content to an alternate media player so that the data content may be processed and displayed by the alternate media player.
Web page 302 can include links 306 pointing to other resources (for example, other web pages or individual files) available at the server system 200 or through the network 127. Links 306 can take virtually any visual form. For example, they can appear as a text string, as a graphical image, or as a combination thereof. Each link 306 has an associated URL pointing to a location on the network 127. When a user selects a displayed link 306, the browser may retrieve the web page (or other resources, such as, for example, movies or sound files) corresponding to the URL associated with the link automatically and may attempt to display and execute the electronic information of the retrieved web page or resource. If the browser cannot display and execute a data type contained in the retrieved web page or resource with its internal functionality, it may export the data content to an alternate media player application, so that the data content may be processed and displayed by the alternate media player.
An example of a browser is Microsoft Internet Explorer™ (IE). IE typically may be used as a standalone application, but it also may be used by other applications, for example, as an ActiveX™ component to allow those applications to call upon IE's functionality and have IE's functionality blend in with and appear as a component and integral part of those applications. Some applications can embed IE functionality using the ActiveX component to provide a web-browsing and information display capability, but without the outward appearance that IE presents to a user as a standalone application. For example, a software application provided by an Internet Service Provider (ISP) to enable its subscribers access to the ISP's servers may use IE functionality as an ActiveX component, but may display a non-IE graphical user interface (GUI) to the subscriber, so that subscribers identify the application with the ISP, rather than with IE. Such an embedded instance of IE may be referred to as an “internal browser,” as contrasted with using IE as a standalone application, in which case, IE as a standalone application may be referred to as an “external browser.”
Whether IE is used as an internal browser or an external browser to locate and access data from either a local or remote location, it may be used to retrieve a stream of data. Examples of data stream types include text, hypertext, graphics, sound-files, and multimedia. For IE to properly handle a stream of data, IE generally receives information indicating the type of data included in the stream, or otherwise gleans the type of data from the stream. For this purpose, IE uses a content-type encoding standard known as the MIME (Multipurpose Internet Mail Extensions) standard to specify the type of data included in the media stream. A MIME type includes a <type>/<subtype> specifier. Some protocols, such as HTTP, provide a mechanism for specifying the MIME type of a stream. Examples include “text/html” for an HTML type text stream, “text/plain” for a plain text type stream, and “image/jpeg” for a jpeg image stream. For other protocols that do not explicitly identify the MIME type of a stream, the MIME type of the stream may be identified using one or more diagnostic tests or filters.
As a browser, IE can include and access built-in functionality to reproduce or display some types of media, such as HTML, plain text, and JPEG images, while including functionality to export those and other media types, such as sound files and video files, for reproduction by one or more alternate media players, such as RealNetworks RealPlayer® or Microsoft Windows Media Player®.
The MIME type associated with a data stream may be used to determine whether the media stream should be reproduced and displayed by the browser or whether the media stream should instead be exported by the browser for reproduction and display by an alternate player. IE allows for the registration of media players that are capable of, and ultimately responsible for, reproducing or displaying the media types handled by IE internally, as well as those handled by IE externally, so as to enable desired media players to be specified for particular media types.
Specifically, a mapping from MIME type to media player may be maintained within the operating system (OS). For example, in the Windows® operating system, a registry of mappings (Windows® registry) is maintained that associates data stream types with media players. Under normal circumstances, this mapping is used to resolve the appropriate media player for an incoming data stream, whether IE is running as an internal or external browser. Because the alternate media player for reproducing or playing a type of data stream is determined by the OS mapping, however, an application using IE as an ActiveX component may modify the mapping if media players other than those specified in the Windows® registry are desired. This modification may be performed by changing the Windows® registry itself, or by overriding or supplementing the Windows® registry with other or additional registrations. In this way, it is possible to control the choice of media player, without modifying the Windows® registry by modifying the choice of the alternate media player to which a data stream is directed when IE operates as an external browser.
Referring to FIG. 4, analysis 400 of a data stream is performed to determine whether an alternate media player should be called to play the data stream. After a data stream is requested by or directed to a browser (step 410), analysis is performed to determine whether the browser instance is internal or external (step 420).
In one implementation, after the browser receives a data stream (step 410), a MIME filter is applied to the data stream. A MIME filter is an asynchronous pluggable protocol (APP) that is implemented as a Component Object Model (COM) used to implement a set of COM interfaces. The MIME filter typically is invoked for a specified MIME type and is used to perform some operation relative to that MIME type. In this instance, it is used to discriminate between internal instances and external instances of the browser, and to load temporary Windows® registrations for MIME types or to perform specified functions for the MIME types upon the occurrence of an internal browser instance (described later with respect to step 440).
IProtocolSink is an interface for pluggable MIME filters that is used to receive notifications if/when data is available for filtering. IProtocolSink allows the APP to obtain a window handle for the client performing the bind operation. Although this window handle typically is used for other purposes, it can be used to determine whether an instance of a MIME filter originated from an internal browser by examining the class name of the reported window handle.
If the browser is not an internal browser, the data stream may be handled using the default process (step 430). However, if the browser instance is internal, then action may be taken to render the data stream using a media player according to mappings other than those maintained for external instances of the browser (step 440), which media player may or may not differ from the media player identified by the mappings maintained for external instances (hereinafter “an alternative media player”) as described, for example, with respect to FIGS. 5-7.
Referring to FIG. 5, a MIME filter may be used to identify a media player to be used in rendering a data stream retrieved or directed to an internal instance of the browser.
Specifically, the MIME type for a data stream is checked against registrations or mappings that are maintained for internal instances of the browser (step 510). For example, MIME filters can be registered either permanently or temporarily. Permanent MIME filters are registered within the Windows® registry and tend to affect all instances of IE, unless pre-empted by temporary MIME filters. Temporary MIME filters are associated with a specific instance of IE and tend to be given priority over permanent MIME filters when handling a data stream. When multiple temporary MIME filters are registered for a particular MIME type, the order of selection among the multiple temporary MIME filters may be inverted relative to the order used for their registration (e.g., the most recently registered MIME filter is selected first), or otherwise. In this instance, temporary MIME filters may be loaded when an internal instance of the browser is detected/invoked and removed when that internal instance of the browser is shut down.
If a MIME filter is not registered for the MIME type of the data stream, the data stream may be handled using some other default process (step 520). If there is a temporary or permanent MIME filter that is registered for the data stream's MIME type, an instance of that MIME filter is established (step 530).
Next, analysis is performed to determine whether the data stream was requested by an internal instance of a browser (step 540). This analysis may be performed as described above in FIG. 4. If the data stream was not requested by an instance of an internal browser, additional action may not be required and the default media player may be called to render the data (step 550).
If the data stream was requested by an instance of an internal browser, the registry structure is modified to include registrations of media players appropriate for internal instances of the browser or some other list of alternate media player registrations is accessed, and that modified or alternate registry is analyzed to determine which media player is registered for the MIME type (step 560). Then, an instance of an appropriate alternate media player is established (step 570) and the data stream is routed for rendering to the alternate media player (step 580). Absent further processing, after the media stream is rendered, the MIME filter returns the data stream to URLMON. Therefore, to prevent invocation of a second media player according to the modified Windows® registry, it may be desirable or necessary to sink the data stream (step 590).
FIG. 6 illustrates one implementation for sinking a call for a default media player ordinarily generated for data streams of similar MIME type by external instances of a browser (step 590). In this implementation, the MIME filter changes the MIME type of the data stream returned to URLMON to a predetermined MIME type (step 610) for which no media player or a dummy media player has been registered. As a result, when the browser detects the altered MIME type in the data stream, the browser will initiate either no media player or an instance of this dummy media player, as appropriate (step 620). Then, to complete the data sink, the modified data stream is routed to this dummy media player, which receives the data stream and either discards the data stream or performs some trivial or background function on the data stream.
Referring to FIG. 7, a data stream also can be directed to an alternate media player using an API hooking approach. This alternate approach provides a similar result to the procedure described above in FIGS. 5 and 6. However, using this approach, it may be possible to eliminate the step of sinking the data stream returned to an internal browser.
Similar to steps 420 and 540 described above, the instance of the browser is analyzed to determine whether it is an internal browser or an external browser (step 710). If the browser is not an internal browser, no additional action is required and the browser will function according to default settings (step 720).
If the browser is an internal browser, then calls used to initiate the creation of a default bind context that is ordinarily created for each invocation of a browser are intercepted (step 730), preferably before the browser can create the bind context necessary to invoke the browser. More specifically, the bind context is an object typically used to hold information useful in overriding default information registered with the operating system. Since a bind context ordinary is created for each invocation of a browser, any override of default information is used only for the current transaction.
Specific calls typically are used for bind context creation. For example, calls to CreateBindCtx or CreateAsyncBindCtx may be intercepted because they are used to create a bind context via OLE32 or URLMON, respectfully. This typically is referred to as Import Address Table (IAT) hooking. The IAT is a special section within the Portable Executable (PE) file format that is used to dispatch calls to imported functions located within other modules. Functions that are imported for use from other Dynamic Link Library (DLL) modules are not called directly by the importing DLL or module, but rather are called indirectly through a dispatch table of function pointers. Thus, using this method, calls to imported functions may be intercepted by manipulating the function pointers within a dispatch table rather than calling the function directly. In this implementation, the intercepted call may be used to provide a pointer, IBindCtx, to the bind context that can be used later.
After the bind context is created, the alternate media player is registered in the bind context (step 740). A pointer to the bind context may be required for this registration. The IBindCtx pointer (e.g., acquired during step 730) can be used for this purpose. Additionally, the IBindCtx pointer can be passed as a parameter to the function call RegisterMediaTypeClass to register the alternate media player.
The bind context is now available to the browser (step 750). The browser uses settings from the bind context to override the default media player registration with the alternate media player. As a result, the browser calls the alternate media player to render the data stream instead of the default media player (step 760).
The browser then initiates an instance of the alternate media player (step 770) and the data stream is routed to it for rendering (step 780).
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made which are within the scope of the following claims. For instance, in the process shown by FIG. 5, it is possible to rearrange the order of processing such that a pre-screening is performed to identify internal instances of browser at the outset (step 540), rather than after a comparison of the MIME type to stored MIME filters.

Claims (23)

What is claimed is:
1. A method for temporarily overriding a default rendering process associated with a data stream comprising:
receiving a data stream using a browser running on a computer system;
detecting an original Multipurpose Internet Mail Extension (MIME) type of the data stream called by the browser;
determining whether the browser is invoked within an application environment of an internet service provider to enable a subscriber of the internet service provider to access an online resource;
if it is determined that the browser is invoked within the application environment of the internet service provider, changing the original MIME type of the data stream to a different MIME type, wherein the original MIME type associates the data stream with a first rendering process identified in a registry of the computer system and the different MIME type associates the data stream with a second rendering process identified in the registry of the computer system; and
temporarily overriding the a default rending rendering process identified in the registry of the computer by handling the data stream with the second rendering process based on the different MIME type of the data stream and thereby temporarily overriding the default rendering process.
2. The method of claim 1 wherein the data stream is received in response to the request from the browser.
3. The method of claim 1 further comprising loading a MIME filter into an operating system of the computer system.
4. The method of claim 3 further comprising receiving notification in the browser that the data stream is available for filtering by the MIME filter.
5. The method of claim 3 further comprising activating a multimedia subsystem player running on the computer system to render the data stream.
6. The method of claim 5 further comprising passing the data stream to the multimedia subsystem player.
7. The method of claim 1 further comprising routing the data stream to the default rendering process if the browser is determined to have been invoked outside the application environment of the internet service provider.
8. A method comprising:
calling a data stream using a browser running on a computer system;
detecting an original Multipurpose Internet Mail Extension (MIME) type of the data stream called by the browser;
changing the original MIME type of the data stream to a different MIME type, wherein the original MIME type associates the data stream with a first rendering process identified in a registry of the computer system and the different MIME type associates the data stream with a second rendering process identified in the registry of the computer system; and
temporarily overriding a default rendering process identified in the registry of the computer by handling the data stream with the second rendering process based on the different MIME type of the data stream and thereby temporarily overriding the default rendering process.
9. The method of claim 8 further comprising loading a MIME filter into an operating system of the computer system.
10. The method of claim 9 further comprising receiving notification in the browser that the data stream is available for filtering by the MIME filter.
11. The method of claim 9 further comprising activating a multimedia subsystem player running on the computer system to render the data stream.
12. The method of claim 11 further comprising passing the data stream to the multimedia subsystem player.
13. The method of claim 8, wherein the registry comprises a registry of available media players.
14. The method of claim 8, wherein the registry comprises a Windows registry.
15. The method of claim 8, wherein the registry comprises an association of MIME types with rendering processes.
16. A non-transitory computer program, stored on a computer readable medium, comprising instructions for:
calling a data stream using a browser running on a computer system;
detecting an original Multipurpose Internet Mail Extension (MIME) type of the data stream called by the browser;
changing the original MIME type of the data stream to a different MIME type, wherein the original MIME type associates the data stream with a first rendering process of the computer system and the different MIME type associates the data stream with a second rendering process identified in the registry of the computer system; and
temporarily overriding a default rendering process identified in the registry of the computer by handling the data stream with the second rendering process based on the different MIME type of the data stream and thereby temporarily overriding the default rendering process.
17. The non-transitory computer program of claim 16, further comprising instructions for loading a MIME filter into an operating system of the computer system.
18. The non-transitory computer program of claim 17, further comprising instructions for receiving notification in the browser that the data stream is available for filtering by the MIME filter.
19. The non-transitory computer program of claim 17, further comprising instructions for activating a multimedia subsystem player running on the computer system to render the data stream.
20. The non-transitory computer program of claim 19, further comprising instructions for passing the data stream to the multimedia subsystem player.
21. The non-transitory computer program of claim 16, wherein the registry comprises a registry of available media players.
22. The non-transitory computer program of claim 16, wherein the registry comprises a Windows registry.
23. The non-transitory computer program of claim 16, wherein the registry comprises an association of MIME types with rendering processes.
US13/620,704 2000-10-05 2012-09-14 Rerouting media to selected media applications Expired - Lifetime USRE45472E1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/620,704 USRE45472E1 (en) 2000-10-05 2012-09-14 Rerouting media to selected media applications

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US23769700P 2000-10-05 2000-10-05
US09/971,086 US7343419B1 (en) 2000-10-05 2001-10-05 Rerouting media to selected media applications
US12/027,578 US7797442B2 (en) 2000-10-05 2008-02-07 Rerouting media to selected media applications
US13/620,704 USRE45472E1 (en) 2000-10-05 2012-09-14 Rerouting media to selected media applications

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/027,578 Reissue US7797442B2 (en) 2000-10-05 2008-02-07 Rerouting media to selected media applications

Publications (1)

Publication Number Publication Date
USRE45472E1 true USRE45472E1 (en) 2015-04-14

Family

ID=39155451

Family Applications (3)

Application Number Title Priority Date Filing Date
US09/971,086 Expired - Lifetime US7343419B1 (en) 2000-10-05 2001-10-05 Rerouting media to selected media applications
US12/027,578 Ceased US7797442B2 (en) 2000-10-05 2008-02-07 Rerouting media to selected media applications
US13/620,704 Expired - Lifetime USRE45472E1 (en) 2000-10-05 2012-09-14 Rerouting media to selected media applications

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US09/971,086 Expired - Lifetime US7343419B1 (en) 2000-10-05 2001-10-05 Rerouting media to selected media applications
US12/027,578 Ceased US7797442B2 (en) 2000-10-05 2008-02-07 Rerouting media to selected media applications

Country Status (1)

Country Link
US (3) US7343419B1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343419B1 (en) 2000-10-05 2008-03-11 Aol Llc Rerouting media to selected media applications
US7665115B2 (en) * 2001-02-02 2010-02-16 Microsoft Corporation Integration of media playback components with an independent timing specification
US9424563B2 (en) * 2005-03-11 2016-08-23 Microsoft Technology Licensing, Llc Accessing medial context information using contextual links
US10019570B2 (en) * 2007-06-14 2018-07-10 Microsoft Technology Licensing, Llc Protection and communication abstractions for web browsers
US8307300B1 (en) * 2008-05-13 2012-11-06 Google Inc. Content resizing and caching in multi-process browser architecture
US20110087964A1 (en) * 2009-10-08 2011-04-14 Research In Motion Limited Method for indicating a volume of an audio sink of a portable electronic device
US8990610B2 (en) * 2010-03-12 2015-03-24 International Business Machines Corporation Preferred resource selector
KR101260185B1 (en) * 2011-09-22 2013-05-06 주식회사 엘지씨엔에스 Smart settop box and operating method for providing smart service and digital television service using default media player included in single operating systme
US9619785B2 (en) * 2012-10-25 2017-04-11 Blackberry Limited Method and apparatus pertaining to the sending of messages lacking identified recipients
CA2962573C (en) * 2014-09-25 2023-09-19 Good Technology Holdings Limited Retrieving media content
CN106658149A (en) * 2015-10-28 2017-05-10 中兴通讯股份有限公司 Media play method and device
AU2019443340A1 (en) * 2019-04-29 2021-12-23 Acast Ab (Publ) Media content provision in a computer network

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009462A (en) * 1997-06-16 1999-12-28 Digital Equipment Corporation Replacing large bit component of electronic mail (e-mail) message with hot-link in distributed computer system
US6035330A (en) * 1996-03-29 2000-03-07 British Telecommunications World wide web navigational mapping system and method
US6088717A (en) * 1996-02-29 2000-07-11 Onename Corporation Computer-based communication system and method using metadata defining a control-structure
US6167567A (en) 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
US6212574B1 (en) 1997-04-04 2001-04-03 Microsoft Corporation User mode proxy of kernel mode operations in a computer operating system
US6263363B1 (en) * 1999-01-28 2001-07-17 Skydesk, Inc. System and method for creating an internet-accessible working replica of a home computer on a host server controllable by a user operating a remote access client computer
US6292824B1 (en) 1998-07-20 2001-09-18 International Business Machines Corporation Framework and method for facilitating client-server programming and interactions
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6374402B1 (en) * 1998-11-16 2002-04-16 Into Networks, Inc. Method and apparatus for installation abstraction in a secure content delivery system
US6401099B1 (en) * 1996-12-06 2002-06-04 Microsoft Corporation Asynchronous binding of named objects
US6460058B2 (en) * 1996-12-06 2002-10-01 Microsoft Corporation Object-oriented framework for hyperlink navigation
US20020166038A1 (en) 2001-02-20 2002-11-07 Macleod John R. Caching for I/O virtual address translation and validation using device drivers
US6564255B1 (en) * 1998-07-10 2003-05-13 Oak Technology, Inc. Method and apparatus for enabling internet access with DVD bitstream content
US20030202010A1 (en) 2002-04-26 2003-10-30 Kerby George H. Retention of job settings based on data type
US6681325B1 (en) * 1999-09-15 2004-01-20 Powerquest Corporation Providing disk layout information to an operating system for booting after disk repartitioning
US20050210412A1 (en) 2000-02-11 2005-09-22 Microsoft Corporation Unified navigation shell user interface
US7017189B1 (en) * 2000-06-27 2006-03-21 Microsoft Corporation System and method for activating a rendering device in a multi-level rights-management architecture
US7343419B1 (en) 2000-10-05 2008-03-11 Aol Llc Rerouting media to selected media applications

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088717A (en) * 1996-02-29 2000-07-11 Onename Corporation Computer-based communication system and method using metadata defining a control-structure
US6035330A (en) * 1996-03-29 2000-03-07 British Telecommunications World wide web navigational mapping system and method
US6401099B1 (en) * 1996-12-06 2002-06-04 Microsoft Corporation Asynchronous binding of named objects
US6460058B2 (en) * 1996-12-06 2002-10-01 Microsoft Corporation Object-oriented framework for hyperlink navigation
US6212574B1 (en) 1997-04-04 2001-04-03 Microsoft Corporation User mode proxy of kernel mode operations in a computer operating system
US6009462A (en) * 1997-06-16 1999-12-28 Digital Equipment Corporation Replacing large bit component of electronic mail (e-mail) message with hot-link in distributed computer system
US6167567A (en) 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
US6564255B1 (en) * 1998-07-10 2003-05-13 Oak Technology, Inc. Method and apparatus for enabling internet access with DVD bitstream content
US6292824B1 (en) 1998-07-20 2001-09-18 International Business Machines Corporation Framework and method for facilitating client-server programming and interactions
US20030037178A1 (en) 1998-07-23 2003-02-20 Vessey Bruce Alan System and method for emulating network communications between partitions of a computer system
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6374402B1 (en) * 1998-11-16 2002-04-16 Into Networks, Inc. Method and apparatus for installation abstraction in a secure content delivery system
US6263363B1 (en) * 1999-01-28 2001-07-17 Skydesk, Inc. System and method for creating an internet-accessible working replica of a home computer on a host server controllable by a user operating a remote access client computer
US6681325B1 (en) * 1999-09-15 2004-01-20 Powerquest Corporation Providing disk layout information to an operating system for booting after disk repartitioning
US20050210412A1 (en) 2000-02-11 2005-09-22 Microsoft Corporation Unified navigation shell user interface
US7017189B1 (en) * 2000-06-27 2006-03-21 Microsoft Corporation System and method for activating a rendering device in a multi-level rights-management architecture
US7343419B1 (en) 2000-10-05 2008-03-11 Aol Llc Rerouting media to selected media applications
US7797442B2 (en) 2000-10-05 2010-09-14 Aol Inc. Rerouting media to selected media applications
US20020166038A1 (en) 2001-02-20 2002-11-07 Macleod John R. Caching for I/O virtual address translation and validation using device drivers
US6886171B2 (en) 2001-02-20 2005-04-26 Stratus Technologies Bermuda Ltd. Caching for I/O virtual address translation and validation using device drivers
US20030202010A1 (en) 2002-04-26 2003-10-30 Kerby George H. Retention of job settings based on data type

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
U.S. Appl. No. 09/971,086, mail date Feb. 9, 2005, Office Action.
U.S. Appl. No. 09/971,086, mail date Jul. 13, 2005, Office Action.
U.S. Appl. No. 09/971,086, mail date Mar. 30, 2006, Office Action.
U.S. Appl. No. 09/971,086, mail date May 11, 2007, Notice of Allowance.
U.S. Appl. No. 09/971,086, mail date Oct. 17, 2007, Notice of Allowance.
U.S. Appl. No. 12/027,578, mail date May 14, 2010, Notice of Allowance.

Also Published As

Publication number Publication date
US7797442B2 (en) 2010-09-14
US7343419B1 (en) 2008-03-11
US20080133611A1 (en) 2008-06-05

Similar Documents

Publication Publication Date Title
USRE45472E1 (en) Rerouting media to selected media applications
US10798127B2 (en) Enhanced document and event mirroring for accessing internet content
JP3469057B2 (en) Browser based electronic message transmission method
CA2371243C (en) Method for context-sensitive help in a web based application
US6632248B1 (en) Customization of network documents by accessing customization information on a server computer using uniquie user identifiers
US5870767A (en) Method and system for rendering hyper-link information in a printable medium from a graphical user interface
US6704797B1 (en) Method and system for distributing image-based content on the internet
JP5129858B2 (en) Web media resource identification system and method
US6567918B1 (en) Saved Web page security system and method
US6101328A (en) System for preventing multiple instances of the same dynamic executable module
US8176185B2 (en) Method of switching Internet personas based on URL
US20030093572A1 (en) Method and system for browser integration using a forwarding plug-in
US7272642B2 (en) Detecting a reverse proxy and establishing a tunneled connection therethrough
US7266588B2 (en) Network service system and method including a channel generator
US6182073B1 (en) Integrated information browsing and multiple-participant application with a persistency control configured to monitor and to prevent attempts to replace data within the information browser
US20040153493A1 (en) Method and system for remote control of a local system
US20060294196A1 (en) Method and system for storing a web browser application session cookie from another client application program
US10339199B2 (en) Methods, systems, and computer readable media for capturing and storing a web page screenshot
CN1257593A (en) System for dynamically controlling a network device
JP2002533830A (en) Apparatus and method for determining a neighbor program of a client node in a client-server network
US7305713B1 (en) Method and system for preventing capture of electronic digital content
US7165220B1 (en) Apparatus and method for processing bookmark events for a web page
US20040019653A1 (en) Context-aware client system
US7356566B2 (en) Selective mirrored site accesses from a communication
US7831732B1 (en) Network connection utility

Legal Events

Date Code Title Description
AS Assignment

Owner name: AOL INC., VIRGINIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AOL LLC;REEL/FRAME:031033/0534

Effective date: 20091204

Owner name: AOL LLC, VIRGINIA

Free format text: CHANGE OF NAME;ASSIGNOR:AMERICA ONLINE, INC.;REEL/FRAME:031034/0219

Effective date: 20060403

Owner name: FACEBOOK, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AOL INC.;REEL/FRAME:031033/0608

Effective date: 20120614

Owner name: AMERICA ONLINE, INC., VIRGINIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ROBINSON, JOHN;REEL/FRAME:031033/0515

Effective date: 20011128

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552)

Year of fee payment: 8

AS Assignment

Owner name: META PLATFORMS, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:FACEBOOK, INC.;REEL/FRAME:058961/0436

Effective date: 20211028

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12