WO1998024037A9 - Method for securely triggering the playing of crippled local media through the web - Google Patents

Method for securely triggering the playing of crippled local media through the web

Info

Publication number
WO1998024037A9
WO1998024037A9 PCT/US1997/020929 US9720929W WO9824037A9 WO 1998024037 A9 WO1998024037 A9 WO 1998024037A9 US 9720929 W US9720929 W US 9720929W WO 9824037 A9 WO9824037 A9 WO 9824037A9
Authority
WO
WIPO (PCT)
Prior art keywords
data
video
rom
disk
player
Prior art date
Application number
PCT/US1997/020929
Other languages
French (fr)
Other versions
WO1998024037A3 (en
WO1998024037A2 (en
Filing date
Publication date
Priority claimed from US08/756,162 external-priority patent/US5892825A/en
Priority claimed from US08/792,092 external-priority patent/US5937164A/en
Priority claimed from US08/872,082 external-priority patent/US6185306B1/en
Application filed filed Critical
Priority to EP97947544A priority Critical patent/EP0974217A2/en
Priority to CA002271012A priority patent/CA2271012A1/en
Priority to AU52598/98A priority patent/AU5259898A/en
Publication of WO1998024037A2 publication Critical patent/WO1998024037A2/en
Publication of WO1998024037A9 publication Critical patent/WO1998024037A9/en
Publication of WO1998024037A3 publication Critical patent/WO1998024037A3/en

Links

Definitions

  • the present invention is directed to a method of transmitting "triggering data" over a network to cause video and/or audio information data on a CD-ROM at an end-user's computer to be made readable.
  • the CD-ROM comprises program files for automatically dialing and connecting the end-user's computer to a targeted host's server using an operating system such as "Windows 95".
  • the CD-ROM will only allow the end-user access to the video/and or audio on it by logging onto the host ' s server via a network such as the Internet .
  • the Internet is a conglomeration of computer networks that are linked together.
  • Each network of the Internet may have one or more servers, and an operating system that may be different f om that of others in the Internet .
  • the Internet system utilizes hardware and software devices called: bridges, routers, and gateways, all of which adapt the information being sent on one network to the operating and protocol requirements of the receiving network.
  • a gateway will connect, or "splice" a network operating on the Novell protocol to a network that operates on a DECnet or SNA protocol .
  • POTS Plain Old Telephone Service
  • the Internet system utilizes two types of file-transfer protocols (FTP) for copying a file from a host computer to the receiving computer: ASCII and binary.
  • An ASCII file is a text file, while every other kind of file is binary.
  • ASCII files are transmitted in seven-digit ASCII codes, while the binary files are transmitted in binary code. Because all data stored in computer memory is stored in binary format, when one sends a file in the Internet, it is sent in binary format. However, as discussed above, owing to the data-transmission constraints imposed by the Internet system because of the differing operating systems, and a multitude of gateways, routers, and bridges, the file data must be sent out in packets of a size no greater than 1536 bytes.
  • the length of time to receive a thirty-second video over the Internet after being buffered in the user's computer is near real time, but is unstable, choppy and drops as much as 96% of the video data over a conventional phone line.
  • E-mail In the Internet, there is an electronic-mail delivery system called E-mail.
  • the E-mail system utilizes addresses to direct a message to the recipient, with each address having a mailbox code and a daemon, with the mail box and daemon being separated by the symbol @.
  • all of the messages or "mail” are routed through selected routers and gateways, until it reaches what may be called a "post office” that services the recipient to whom the electronic mail is to be delivered.
  • the "post office” is a local server. The need for these local "post offices” is because there is every reason to assume that the recipien -computer, to which the mail is being sent, is either not powered up, or is performing a different task.
  • the local "post office" or server stores the message until such a time as it may be delivered to the end-user to whom it is intended.
  • Examples of such encodings currently used in the Internet include pure hexadecimal, uuencoded, the 3-in-4 base 64 scheme specified in RFC 1421, the Andrew Toolkit Representation [ATK] , and many others.
  • ATK Andrew Toolkit Representation
  • a user's UA may not have the capability of dealing with the non-textual body part, the user might have some mechanism external to the UA that can extract useful information from the body part.
  • it does not allow for the fact that the message may eventually be gatewayed back into an X.400 message handling system (i.e., the X.400 message is "tunneled" through Internet mail) , where the non-textual information would definitely become useful again.
  • MIME video and/or audio data may be sent using the E-mail system.
  • MIME uses a number of header-fields, such as “Content-Type” header field, which can be used to specify the type and subtype of data in the body of a message and to fully specify the native representation (encoding) of such data; "text" Content-Type value header field, which an be used to represent textual information in a number of character sets and formatted text description languages in a standardized manner; "multi-part” Content-Type value, which can be used to combine several body parts, possibly of differing types of data, into a single message; "application” Content-Type value, which an be used to transmit application data or binary data, and hence, among other users, to implement an electronic mail file transfer service; "message” Content-Type value, for encapsulating another mail message; “image” Cont- ent-Type value, for transmitting still image (picture) data; "audio” Content-Type value, for transmitting audio or voice data; "video” Content-Type value, for transmit
  • MIME is an E-mail protocol system
  • the data is transmitted via the E-mail system, meaning that it is routed through one or more post offices and servers, which delay the transmission of the data, and which require that no other task be performed by the receiving computer if it is a single-tasking machine, like DOS-operating system machines.
  • the requisite E-mail software at the recipient computer must decode the encoded data received, and then cut-and-paste the data into a new file, such as NOTEPAD, which is time-consuming, before the new file is played back by a viewer or player.
  • DVD-ROM digital video disk
  • This DVD- disc has especial usefulness in the storage of archiving data and in the storage of video data, such as full-length movies.
  • Conventional CD-ROMS do not provide enough storage capacity for full-length movies, and the like.
  • Zoom-TV a new envisioned technology
  • This service-provider will send the necessary enabling data to the system playing the DVD-ROM for allowing the data on the DVD-ROM to be played back, for which the user of the DVD- ROM will be billed, whereby a pay-per-view type of system is effected.
  • the user's system for playing the DVD-ROM will call the service-provider via the land-line telephone network, over which the necessary enabling data for playing the DVD- ROM is also transmitted to the user's or requesting system.
  • the pay-per-view DVD system will typically include a DVD- player, which includes a video player such as MPEG-2, a TV or monitor, and a microprocessor or personal computer.
  • the user will request permission to playback the video on the DVD-ROM by calling up the service provider via the public, switched telephone network, or PSTN.
  • DVD-ROMs containing full-length movies presently are provided with parental rating controls, which a three-tier format: To wit, a "Kids' Title” playback only, a "Forbid Adult Titles” mode, and a "Play All Titles” mode.
  • Each title of a DVD-ROM is accorded one of a first, general category allowing playback by any of the three modes, a second "Kids” category for playback only in the "Kids' Title” playback mode and which prevents all other titles including adult titles, and a third "Forbid-Adult" category for which only adult titles are prevented from being played but all other titles may be played.
  • the first general category allowing complete playback of all titles, is assigned the equivalent code of "1" in its heading, while the second Kids' titles only playback mode is assigned a code of "2", and the third "Forbid-Adult" category for which only adult titles are prevented from being played having a code of "3" in its header.
  • the DVD player such as MPEG-2, has corresponding software for detecting the category codes, and software for setting the level of playback, whether it be the first, second or third mode.
  • each DVD-ROM also has a country code, with the code representing the country of manufacture of the DVD-ROM.
  • each DVD-player has a country code, with the DVD-player's software preventing play of the DVD-ROM if the country code on the DVD-ROM does not match the country code of the DVD-player. This system is intended to prevent the illegal copying and pirating of the videos on the DVD-ROM.
  • Cable-TV networks are well-known. These systems utilize a set-top box converter for receiving the signals from the cable-TV provider and playing them back on the TV or monitor. Cable-TV networks also now have units that allow access to the Internet via the cable network, with such units having their own microprocessor for allowing communication with the Internet and for the display of Internet data on the TV or monitor.
  • URL content provider's host server
  • a software program in the end-user computer called a "catcher" for catching the trigger data such as the file header, decoding it, and playing the file header data substantially "on the fly” , so that the video and/or audio data on the CD-ROM may be played back on the end-user's computer substantially immediately after having received the trigger data.
  • the method of the invention for transmitting the de-crippling triggering data for video and/or audio off a CD-ROM (“HyperCD") over the Internet consists of encoding the data representing critical information of the file keys such as the header of the video/audio files on the CD-ROM, and transmitting that encoded key to the local server of the local web of the Internet serving the caller, or end-user computer.
  • the local server then establishes a point-to-point socket-connection between the transmitting, host computer, and the receiving or end-user computer, thereby obviating the need to send the actual video data over the Internet .
  • the data is decoded and matched to the video/audio files of the CD-ROM, whereupon, since the data files on the CD-ROM now have an associated and complete header, the data thereof may be read, to thus allow the instant playback of the video-audio data on the CD-ROM.
  • the host computer may send along with the encoded data, additional information pertinent to the information contained on the CD-ROM, such as current prices, special offers or deals, locations of local stores or dealers, or any information that the host computer, content provider, would like the end-user to receive.
  • the CD-ROM In order to encourage the end-user to view the video/audio, the CD-ROM is provided with its own Internet dial-up program files for connecting to the host web server, so that very little time and effort is required on the part of the end-user.
  • Figure 1 is a pictorial representations of the hardware systems and software processes used for carrying out the present invention
  • FIG. 2 is a block diagram showing the hardware of the end-user's computer used for carrying out the present invention
  • Figure 3 is a flow chart at a user's computer for accessing the trigger-data from a web-site
  • Figure 4 is a flow chart for the server associated with the Internet for evaluating the trigger-request from the user's computer and for sending the trigger;
  • FIG. 5 is a block diagram showing the socket-to-socket connection for transmitting the de-crippling, triggering key for causing the display of the video images and/or audio data of a "HyperCD" at the end-user's PC over the Internet from a host computer combined with a targeted URL to a recipient or end-user's computer;
  • Figure 6 is a block diagram showing the steps for forming on the CD-ROM the encoded video and audio data for use by the end-user recipient computer after having been crippled by removing the header-triggering key sent from the media files;
  • Figure 7 is a block diagram showing the process of triggering in order to invoke "HyperCD" video and/or audio data at the receiving computer for playback;
  • FIG. 8 is a pictorial representation of the hardware component and software processing involved
  • Figure 9 is a flow chart showing the server-side of the Internet with the encrypted files thereat;
  • Figure 10 is a flow chart showing the "catcher" program of the invention at the ens-user's computer for playing back the receiving data immediately;
  • Figure 11 is a block diagram of the catcher-program process
  • FIG 12 is a block diagram of a modification of the invention where instead of using a CD-ROM, the video and/or other information is downloaded via the Internet from a Web page, which video and/or other information is encrypted with a key, with the user's computer storing the corresponding decryption key therefor; and
  • Figure 13 is a block diagram of the DVD-ROM player system of the invention allowing both pay-per-view DVD-ROM play and conventional, non-pay-per-view DVD-ROM play.
  • All of the hardware is conventional and well-known, and includes an end-user computer 1 having a CD-ROM drive 2 for playing a CD-ROM 3 having stored thereon crippled data 4 that is unreadable without first having received a trigger or uncrippling key 5.
  • the end- user 's computer 1 is connected via the Internet 6 to a host- computer server 7 which has stored thereat the uncrippling or triggering key 5 for the information stored on the end-user's CD-ROM 3.
  • the end-user's computer 1 has a display and a CPU 9 and a communication-device, such as a modem 10 for establishing communication with the Internet 6.
  • the computer 1 also has the CD-ROM drive 2, hard-drive 11, RAM 13, and video system 8 including monitor as well as audio system 13.
  • FIG. 3 there is shown the flow charts for receiving the uncrippling key.
  • the end-user first submits a request over the Internet for the uncrippling key (block 60) .
  • the user then waits for that key (block 62) , and if the user is not authorized, the request is denied.
  • the uncrippling key is sent by the server and received by the end-user's computer (block 64), whereupon the end-user's computer directs the uncrippling key into volatile memory such as RAM, not into a RAM-disk to be vis- ible, but saved in a dynamically allocated data structure in RAM accessible only by the receiving program, combined with crippled data read from the CD-ROM and displays the video/animation (block 68) .
  • FIG. 4 shows the process-flow that at the server side.
  • the server conventionally provides the web pages to the Internet users (block 70) , and awaits a user-request (block 72) . If a request is received from an end-user's computer, the server evaluates the request (block 74) in order to authorize the transfer of the uncrippling key (block 76) . If an authorization is granted, then the uncrippling, trigger key is sent (block 78) .
  • FIG. 5-7 video images and/or audio are converted from analog to digital and stored in crippled fashion in digitized format (block 10) on CD-ROM 3.
  • the crippling of the CD-ROM is achieved by removing critical information such as the video-audio header, whereupon such video/audio data is rendered unreadable by the end-user's computer.
  • the "HyperCD" 3 is provided with the URL (web page) of the designated host computer, or server, (block 14) , such, as for example: http://tekweb.com/hypercd/adver/lotto.html, which may be used on the CD-ROM for the Illinois Instant Lottery video advertising.
  • Such digitized format may be existing computer memory files (block 12) that are already in binary format, or may be original files originated by recording the video and/or audio, as by a camcorder or tape, etc., and converting the analog signals into digital, or binary, code.
  • the analog data may be converted to digital data using an INTEL "Smart Video Reorder Pro", for example.
  • the raw binary data that is stored on the "HyperCD” (block 16) is crippled, so the only way to access the data is a socket-to-socket connection with the server of the web page of the host .
  • the CD-ROM contains a code representing the URL web page of the host computer where the necessary de-crippling key is located.
  • This data on the CD-ROM 3 will automatically call up and connect the end-user's computer to the host computer's server 7 on the Internet, whereby a socket-to-socket connection is made therebetween (block 18) .
  • Such an automatic connection is well-known, and will automatically find the end-user's browser, will call the Internet service provider, and pass the necessary links from the CD- ROM to the browser in order to get to the host ' s web page .
  • Such software is available on the "Windows 95" operating system, such as "ActiveX" .
  • the host computer then sends back to the local server serving the end-user's computer the necessary, uncrippling trigger for the specific video/audio data on the end-user's CD-ROM (block 20).
  • the data is sent out directly over the Internet to the end-user, and, in particular, to the RAM 12 of the end- user's computer (block 22).
  • RAM the trigger (block 22), and the data on the CD-ROM 3 are combined, and played back (block 24), as described above.
  • the end-user's computer 7 since the key 5 is being sent via Internet 6, the end-user's computer 7 must be equipped with the requisite software which is capable of receiving data from the server 7 and which will ensure that the received encoded key 5 is placed safely in RAM 12, and not allowed to be otherwise saved in hard drive 11 where it may be captured and used in a way not authorized by the server 7.
  • the raw analog data of the audio/video is digitized (block 30) , as explained above, and stored on CD-ROM 3 by conventional techniques.
  • the storage of the data on the key or critical information of the media file such as video-audio header associated with the video/audio files will be omitted from storage on the CD-ROM, whereupon the CD-ROM is crippled, or prevented from being read for playing back the video/audio files (block 32) .
  • the CD-ROM is provided with software for linking up the host-computer which has the necessary key 5 for uncrippling the video-audio files 4 on the CD-ROM 3, which linking software maps or automatically directs the end- user's computer to the host server via the Internet, such linking software having all of the necessary routing information for directing the Internet connection to the host computer's server and web page (URL) (Block 34) .
  • the encoding of the critical information such as "Header" trigger is achieved utilizing any conventional encoding program, such as, for example, RSA by Data Security (block 36) . This encoding will create a trigger of a few bytes comprising all of the necessary information to trigger the CD-ROM, and to invoke the video and/or audio data.
  • Figure 7 shows the steps involved for de-crippling the data on the CD-ROM 3 of a receiving or end-user's computer 1 (block 40) .
  • a socket-to-socket connection is made between the host, or sending, computer and the receiving, or end-user's computer by means of the linking software described above installed on the end-user's computer (block 42).
  • the Internet Service Provider (ISP) of the end-user's computer's web of the Internet sends the data to the host computer's server over the Internet, which means that any number of local servers and gateways and routers will have been involved in transmitting the data, until it finally arrives at the server
  • ISP Internet Service Provider
  • the encoded trigger 5 is sent, at a rate of about 3.6 kbytes a second (block 44) .
  • the end-user's computer has a specially- dedicated software program for catching the key, decrypting the key 5 from the server and data from the CD-ROM 3, combining the key and data and playing it back.
  • This catcher is a software program discussed hereinbelow that will direct the incoming key, such as the header, to a random location in RAM
  • the catcher is necessary, since, if it were not present, it is the "nature" of personal computers to randomly dump data which has not had a specific destination assigned to it. Thus, without the catcher, the incoming data may be strewn into a different directory and/or sub-directories, to, thus, be irretrievably lost .
  • a subroutine "player" in the program in the receiving computer begins to decode the trigger, in order to invoke the correct track of the CD-ROM (block 48) , from which the data passes to the audio/video subsystem (8,13, Fig.
  • the file could be made a hidden file, with the trigger data from the host computer being a command to remove the hidden status .
  • the video/audio file could have a changed extension, with the trigger data from the host computer being a command to change the extension.
  • the crippling of the video/audio file may be achieved by the use of ZIP file, with the trigger data from the host computer being a command to UNZIP the data.
  • a floppy disk for storing the crippled file, as described above, for those applications requiring less disk-memory, with the uncrippling data from the host server being sent to the floppy-disk drive via the catcher program, as described above for uncrippling the data on the floppy-disk.
  • the crippled file may also be stored on any storage medium, such as the hard drive 11, with the uncrippling data from the host server being sent to the drive for that storage medium via the catcher program, as explained above.
  • the uncrippling data may also be stored directly in a hard drive or EPROM so that the user has permanent access to it whenever he wishes to uncripple the file; that is, if the user wishes to permanently retain the crippled nature of the data on the CD-ROM, or floppy, he may permanently store the downloaded uncrippling data in hard drive in order to temporarily uncripple the data on the CD-ROM or floppy every time that it is used, as long as such access is authorized by the server.
  • Encrypted files such as the header for the crippled CD-ROM data at an end-user's computer, is stored at a server associated with the Internet (block 100 in Fig.9).
  • This header-trigger or other file is encoded and encrypted in a conventional manner at the server (blocks 102, 104).
  • This encoding will create a header of about 50K or less comprising all of the necessary information necessary to the video and/or audio data on the CD-ROM, as is well-known in the art.
  • the encoded data is sent to the local web server (block 36) in order to be sent out over the Internet, and then to the end-user computer.
  • the catcher program at the end-user computer receives the partial data or trigger, such as a header for the CD-ROM file (block 108) .
  • the catcher program decodes the data, using a conventional decoder (block 110) , and then sends the data directly the conventional player of end-user computer (block 112) for substantially immediate playback.
  • the program entitled "player" in the receiving computer begins to decode the data, in order to re-generate the original binary code, from which the data passes to a conventional digital-to- analog converter, in order to play the video or audio.
  • the video and/or audio data starts to play back by the digital-to-analog converter. That is, it is not necessary to store the trigger data on a hard drive, although it is possible to do so, if it is desired to allow the end-user unobstructed access to the video or audio files on the CD- ROM, or the like, at any time in the future.
  • a hyperCD is obviated, and the video and/or audio, and other data, is downloaded via the Internet from a Web page (block 150) .
  • the video and/or audio, and other data are encrypted with an encryption key.
  • Each user who is to be able to access the data at that Web page will have a corresponding decryption key (block 152) for decrypting the data.
  • the Web site will also download the video player, such as JPEG, "QUICKTIME", or the like, to the user's computer via the Internet.
  • the player such as JPEG
  • JPEG is also encrypted, so that even after the end user has received the video and other data from the Web site via the Internet, the conventional player stored on the user's computer (block 154) will not be able to play the video.
  • the data emanating from the Internet is first identified with the requesting file of the user's computer (block 158), and then sent to the media player for playback (block 160) using the encrypted player, downloaded from the Web site.
  • the encrypted player such as JPEG, is decrypted, like the video data, using the decryption key (block 152) provided by the provider of the Web site. It is noted that before the video is downloaded from the Web site via the Internet, the user must first enter his password or other protective feature.
  • videos at a Web site are protected from being viewed without proper authorization, and if the downloaded video were stored in memory of the user's computer, it would not be playable without first downloading the encrypted player, such as JPEG, from the Web site.
  • the Web provider is able to protect his video and/or graphic data from being copied by the end user's computer. Although the end user may be able to print out a graphic, this would be of very poor quality. It is also within scope and purview of the invention to download only the encrypted player, for playing back encrypted video and/or graphics already stored on the requesting, end user's computer.
  • the video data may be supplied to the end user in other forms besides the Internet or Intranet, but still may not be played back without use of the encrypted player downloaded from the Web site and then decrypted by the decrypting key at the end user's computer.
  • the encrypted player may be provided to the end user, and only the encrypted video files may be sent over the Internet or Intranet .
  • a DVD-ROM disk 10 contains a full-length movie, play, special event, and the like.
  • a DVD-ROM player 12 such as MPEG-2 for playing the video on a TV or monitor 14.
  • a microprocessor or CPU 16 such as that forming part of a PC, or a dedicated microprocessor.
  • the microprocessor 16 conventionally communicates with the DVD-player 12 via data ports 18.
  • memory storage 20 for storing software that allows the system of the invention to discriminate between DVD-ROM's requiring pay-per-view play, and those that are free and do not require pay-per-view play.
  • the software of the invention will treat that DVD-ROM in the conventional manner, by allowing instant playing thereof. Referring to Fig. 1, this is seen by the software determining that a non-pay-per-view DVD-ROM is present, or non-Hyper-DVD disk, and will automatically pro- vide a trigger-signal 24 to a data switch 26.
  • the data switch upon receiving the trigger-signal, will connect a conventional decryption chip 28 to the DVD-player 12, whereupon the data on the DVD-ROM is decrypted and played back, in the conventional manner.
  • the communications-portion 30 of the software of the invention will seek to retrieve the enabling data from a service provider by calling the service-provider over the PSTN.
  • this enabling data may be obtained from the Internet, or, alternatively, via a cable company service provider for those users having cable TV service.
  • the standard cable-box or set-tip box converter 32 is used for the communications.
  • the microprocessor 16 may be that microprocessor of the Internet accessing device itself, with the enabling data being transmitted from the Internet or from the cable TV provider.
  • a fourth parental code 4 for indicating the presence of a Hyper-DVD-ROM
  • a separate and distinct country code may be used, which country code, instead of representing an actual country, represents the a Hyper-DVD.
  • the enabling data for allowing access to the DVD- ROM data may be any of those set forth in Applicants' above- mentioned copending patent applications, such as missing header, etc., and may also include conventional password, ID, security methods, or other standard verification keys, which are well-known and conventional.
  • the service provider After the user's software requests the downloading of the enabling data, the service provider will either send the data, of the requester is a valid customer and current on his account, or will reject the request. If the service provider transmits the necessary enabling data, then the software portion 30 of the invention sends the trigger-data 24 to the data switch 26 to connect the decryption chip 28 to the DVD- player 12.
  • the invention is preferably suited for DVD-ROM disks, other large-storage disks, such as laser disks, video disks, etc., may embody the invention. Also, the invention may be used for those DVD-ROMs that do not employ parental and/or country codes; in this case, the code on the DVD-ROM for indicating that it is a Hyper-DVD requiring a verification key or password from a service-provider may be any of those set forth in Applicants' copending applications listed above, such as supplying the missing header, or any other data for uncrippling the crippled data on the DVD-ROM.
  • a password or key, and the like which would be provided by the service-provider if the requester passes a set of requirements, such as credit check, and the like, may be used.
  • the following is the software code listing for the server of the host computer's web for bursting the encoded "header" trigger data through the Internet.
  • $value ⁇ s/%( [a-fA-FO-9] [a-fA-FO-9] ) /packC'C", hex($l)) /eg;
  • $CMCDIR ' /UL/people/CMC/ ' . $FORM ⁇ ' dir ' ) ;
  • $CONTENT "cat $CMCDIR/CMC001. IVD”; print $CONTENT; print (" ⁇ n ThisRandomString ⁇ n”) ;
  • $file shift ⁇ allfiles; print "Content-type: application/x-CMC ⁇ n ⁇ n” ; print "$file ⁇ n";
  • $CONTENT "cat $CMCDIR/$file”; print $CONTENT; print (" ⁇ n ThisRandomString ⁇ n”) ;
  • LTEXT 'CMCCODE Version ", -1, 15, 12, 72, 8 LTEXT 'WCodeDLL Version: ", -1, 15, 23, 72, 8 LTEXT 'HookDLL Version:", -1, 15, 34, 72, 8 LTEXT 'Release Date:", -1, 15, 45, 72, 8 LTEXT 'Memory:", -1, 15, 62, 72, 8 LTEXT 'System Resources:", -1, 15, 73, 72, 8 LTEXT 701, 90, 12, 105, 8 LTEXT 702, 90, 23, 105, 8 LTEXT 703, 90, 34, 105, 8 LTEXT 704, 90, 45, 105, 8 LTEXT 705, 90, 62, 105, 8 LTEXT 706, 90, 73, 105, 8
  • WS_VISIBLE, 6, 6, 216, 228 ICON "MAIN_ICON", -1, 25, 27, 18, 20, SS_ICON
  • WS_GROUP CTEXT "PLEASE” include a LEGIBLE E-MAIL address with all orders. " ,
  • strcpy (sSYSFILE,SYSFILE); char *pl,*p2;
  • ParseHyperCDTags 1 (szArg,sz Value); ⁇ if( ! bDemandHyperCD)
  • OldWndProc (WNDPROC): : SetWindowLong( This->window->m_hWnd, GWL NDPROC, (LONG) *lplpfh );
  • This->window (CPluginWindow *) new CPluginWindow(); if ( ! This->window->SubclassWindow((HWND)np_window->window))
  • NPMLMEType type NPStream * stream, NPBool seekable, uintl ⁇ *stype
  • NPP_DestroyStream (NPP instance, NPStream * stream, NPError reason)
  • HCDReturnErr HCD_GetURL(InObject,OutObject);
  • HCDRetumErr HCD_PostURL(InObject,OutObject); else
  • HCDReturnErr HCD_DefaultComm(InObject,OutObject); return HCDReturnErr;
  • Trigger DecryptTrigger(pszTrigger); if(IsValidTrigger(TestTrigger)) return HCDERROR UNAUTHORIZED ACCESS;
  • the CRITICAL DATA includes, but not limited to,
  • NewObject new KeyObject
  • the incoming keys may be from several servers.
  • the incoming keys may be of type:
  • the "event” passed in is a Macintosh // EventRecord*.
  • the event, what field can be any of the // normal Mac event types, or one of the following additional // types defined in npapi.h: getFocusEvent, loseFocusEvent, // adjustCursorEvent.
  • the focus events inform your plugin // that it will become, or is no longer, the recepient of // key events. If your plugin doesn't want to receive key // events, return false when passed at getFocusEvent.
  • the // adjustCursorEvent is passed repeatedly when the mouse is // over your plugin; if your plugin doesn't want to set the // cursor, return false. Handle the standard Mac events as // normal. The return value for all standard events is currently // ignored except for the key event: for key events, only return // true if your plugin has handled that particular key event. // return eventHandled;

Abstract

A method of transmitting protected video and/or graphic data over the Internet from a Web site, by encrypting the video and/or graphic data and storing it at a Web site associated with a server, and by encrypting a video player and storing it at the Web site. Both are then downloaded (70) to a requesting computer via the Internet or Intranet. The requesting (72) computer decrypts the video and/or graphic data and video player via a previously supplied decryption key, so that the video may be played back by the decrypted player.

Description

METHOD OF SECURE SERVER CONTROL OF LOCAL MEDIA
VIA A TRIGGER THROUGH A NETWORK FOR INSTANT LOCAL ACCESS OF ENCRYPTED DATA ON LOCAL MEDIA
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent & Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND OF THE INVENTION
The present invention is directed to a method of transmitting "triggering data" over a network to cause video and/or audio information data on a CD-ROM at an end-user's computer to be made readable. In addition, the CD-ROM comprises program files for automatically dialing and connecting the end-user's computer to a targeted host's server using an operating system such as "Windows 95". The CD-ROM will only allow the end-user access to the video/and or audio on it by logging onto the host ' s server via a network such as the Internet .
The Internet is a conglomeration of computer networks that are linked together. Each network of the Internet may have one or more servers, and an operating system that may be different f om that of others in the Internet . To link one network to another, and in order to overcome these operating differences between computer networks, the Internet system utilizes hardware and software devices called: bridges, routers, and gateways, all of which adapt the information being sent on one network to the operating and protocol requirements of the receiving network. For example, a gateway will connect, or "splice" a network operating on the Novell protocol to a network that operates on a DECnet or SNA protocol .
There are currently more than 10,000 computer networks that are linked together, worldwide, which together constitute the "Internet". Because they do not all operate on the same operating system, and because of different protocols, the data sent from one host computer of one network to a receiving computer of another network - which may be many thousands of miles away from the host computer - may take a relatively long time, since the gateways, bridges and routers must conform or adapt the protocol of the sending host computer to the receiving computer's protocol.
In addition to the time-delays associated with protocol variances, the Internet when connecting to an end-user via Plain Old Telephone Service (POTS) , has a maximum data-transmission capacity of 3.6 kbytes per second, which is not enough for sending video images in real time.
The Internet system utilizes two types of file-transfer protocols (FTP) for copying a file from a host computer to the receiving computer: ASCII and binary. An ASCII file is a text file, while every other kind of file is binary. ASCII files are transmitted in seven-digit ASCII codes, while the binary files are transmitted in binary code. Because all data stored in computer memory is stored in binary format, when one sends a file in the Internet, it is sent in binary format. However, as discussed above, owing to the data-transmission constraints imposed by the Internet system because of the differing operating systems, and a multitude of gateways, routers, and bridges, the file data must be sent out in packets of a size no greater than 1536 bytes. Since the size of just a thirty-second video may be as great as 2.5 megabytes, it may take up to one-half hour or more to send a thirty-second video over the Internet from a host computer to a receiving computer. Presently, there are compression techniques that compress the files in order to reduce this playback-time, which data is decompressed at the receiving computer. An example of such a system is VDOLive, manufactured by VDOnet Corp. of Santa Clara, California. However, these compression-systems still send the data in binary format, requiring packet-data sizes of no greater than 1536 bytes. Thus, even with these compression-systems, the length of time to receive a thirty-second video over the Internet after being buffered in the user's computer is near real time, but is unstable, choppy and drops as much as 96% of the video data over a conventional phone line.
In the Internet, there is an electronic-mail delivery system called E-mail. The E-mail system utilizes addresses to direct a message to the recipient, with each address having a mailbox code and a daemon, with the mail box and daemon being separated by the symbol @. In the E-mail delivery system, all of the messages or "mail" are routed through selected routers and gateways, until it reaches what may be called a "post office" that services the recipient to whom the electronic mail is to be delivered. The "post office" is a local server. The need for these local "post offices" is because there is every reason to assume that the recipien -computer, to which the mail is being sent, is either not powered up, or is performing a different task. Since most computers in the Internet are not multi-tasking machines, such as, for example, computers running on the DOS operating system, if such a computer be engaged in performing a task, it is not possible for it to receive the E-mail data at that time. Thus, the local "post office" or server stores the message until such a time as it may be delivered to the end-user to whom it is intended.
In the E-mail system, there has really been only one format standard for Internet messages. A variation has been the MIME version, which stands for Multipurpose Internet Mail Extensions, which defines a new header-field, which is intended for use to send non-text messages, such as multimedia messages that might include audio or images, by encoding the binary into seven-digit ASCII code. Before MIME, the limitation of E-mail systems was the fact that it would limit the contents of electronic mail messages to relatively short lines of seven-bit ASCII. This has forced users to convert any non-textual data that they may wish to send into seven- bit bytes representable as printable ASCII characters before invoking a local mail UA (User Agent, a program with which human users send and receive mail) . Examples of such encodings currently used in the Internet include pure hexadecimal, uuencoded, the 3-in-4 base 64 scheme specified in RFC 1421, the Andrew Toolkit Representation [ATK] , and many others. Even though a user's UA may not have the capability of dealing with the non-textual body part, the user might have some mechanism external to the UA that can extract useful information from the body part. Moreover, it does not allow for the fact that the message may eventually be gatewayed back into an X.400 message handling system (i.e., the X.400 message is "tunneled" through Internet mail) , where the non-textual information would definitely become useful again. With MIME, video and/or audio data may be sent using the E-mail system. MIME uses a number of header-fields, such as "Content-Type" header field, which can be used to specify the type and subtype of data in the body of a message and to fully specify the native representation (encoding) of such data; "text" Content-Type value header field, which an be used to represent textual information in a number of character sets and formatted text description languages in a standardized manner; "multi-part" Content-Type value, which can be used to combine several body parts, possibly of differing types of data, into a single message; "application" Content-Type value, which an be used to transmit application data or binary data, and hence, among other users, to implement an electronic mail file transfer service; "message" Content-Type value, for encapsulating another mail message; "image" Cont- ent-Type value, for transmitting still image (picture) data; "audio" Content-Type value, for transmitting audio or voice data; "video" Content-Type value, for transmitting video or moving image data, possibly with audio as part of the composite video data format; "Content-Transfer-Encoding" header field, which can be used to specify an auxiliary encoding that was applied to the data in order to allow it to pass through mail transport mechanisms which may have data or character set limitations. Two additional header fields may be used to further describe the data in a message body: The "Content-ID" and "Content Description" header fields.
However, there are considerable drawbacks and deficiencies in transmitting video images and/or audio data over the Internet using E-mail's MIME. Firstly, there is often considerable time delays, such that it may take up to ten or more minutes to send a thirty-second video clip over the E-mail system. In times of high-traffic usage, the delay may even be more than ten minutes. Secondly, the video image or audio data cannot be viewed or listened to by the end-user, or recipient, until all of the data of the entire video or audio file has been received by the receiving computer, which, also, adds a considerable time lag to the actual viewing or listening. Thirdly, the end-user or recipient computer must have the necessary E-mail and MIME software for decoding the data. Fourthly, since MIME is an E-mail protocol system, the data is transmitted via the E-mail system, meaning that it is routed through one or more post offices and servers, which delay the transmission of the data, and which require that no other task be performed by the receiving computer if it is a single-tasking machine, like DOS-operating system machines. Fifthly, like all E-mail deliveries, the requisite E-mail software at the recipient computer must decode the encoded data received, and then cut-and-paste the data into a new file, such as NOTEPAD, which is time-consuming, before the new file is played back by a viewer or player.
While CD-ROMs provide a great amount of data storage, a new disc called DVD-ROM (digital video disk) provides considerably more data storage, reaching data storage capacities of up to 17 GB as compared to 680 MGB for a CD-ROM. This DVD- disc has especial usefulness in the storage of archiving data and in the storage of video data, such as full-length movies. Conventional CD-ROMS do not provide enough storage capacity for full-length movies, and the like. In conjunction with the DVD-ROM disc, is a new envisioned technology called "Zoom-TV", which will prevent the playback of the DVD-ROM without first obtaining permission form a service-provider. This service-provider will send the necessary enabling data to the system playing the DVD-ROM for allowing the data on the DVD-ROM to be played back, for which the user of the DVD- ROM will be billed, whereby a pay-per-view type of system is effected. The user's system for playing the DVD-ROM will call the service-provider via the land-line telephone network, over which the necessary enabling data for playing the DVD- ROM is also transmitted to the user's or requesting system. The pay-per-view DVD system will typically include a DVD- player, which includes a video player such as MPEG-2, a TV or monitor, and a microprocessor or personal computer. The user will request permission to playback the video on the DVD-ROM by calling up the service provider via the public, switched telephone network, or PSTN.
DVD-ROMs containing full-length movies presently are provided with parental rating controls, which a three-tier format: To wit, a "Kids' Title" playback only, a "Forbid Adult Titles" mode, and a "Play All Titles" mode. Each title of a DVD-ROM is accorded one of a first, general category allowing playback by any of the three modes, a second "Kids" category for playback only in the "Kids' Title" playback mode and which prevents all other titles including adult titles, and a third "Forbid-Adult" category for which only adult titles are prevented from being played but all other titles may be played. For purposes of this application, the first general category, allowing complete playback of all titles, is assigned the equivalent code of "1" in its heading, while the second Kids' titles only playback mode is assigned a code of "2", and the third "Forbid-Adult" category for which only adult titles are prevented from being played having a code of "3" in its header. The DVD player, such as MPEG-2, has corresponding software for detecting the category codes, and software for setting the level of playback, whether it be the first, second or third mode.
In addition to parental control codes, each DVD-ROM also has a country code, with the code representing the country of manufacture of the DVD-ROM. In conjunction with this, each DVD-player has a country code, with the DVD-player's software preventing play of the DVD-ROM if the country code on the DVD-ROM does not match the country code of the DVD-player. This system is intended to prevent the illegal copying and pirating of the videos on the DVD-ROM.
Cable-TV networks are well-known. These systems utilize a set-top box converter for receiving the signals from the cable-TV provider and playing them back on the TV or monitor. Cable-TV networks also now have units that allow access to the Internet via the cable network, with such units having their own microprocessor for allowing communication with the Internet and for the display of Internet data on the TV or monitor.
SUMMARY OF THE INVENTION
It is the primary objective of the present invention to separate keys and data by providing a CD-ROM having its informational data of video and/or audio that is crippled, which data may only be read after it has been "uncrippled" by receiving "uncrippling" triggering data over the Internet from a server of a host system, so that a company's host computer serving the Internet may transmit the "uncrippling" data over the Internet to an end-user's receiving computer in order to uncripple and, thereby, actuate the CD-ROM, so that the data thereon may be read by the end-user's receiving computer only in volatile memory such as RAM.
It is another objective of the present invention to enable server control of the local media data by providing such a "crippled" CD-ROM with video and/or audio data thereon, whereby content by a company on the Internet may be better controlled, and whereby in conjunction with the content, video and/or audio playback may be combined with any updated, textual information, such as current price of a product or products, location of a store or stores in the vicinity of the end-user's residence, etc. Specific tracks on the CD-ROM can thereby be controlled by the remote server.
It is another objective of the present invention to provide such a "crippled" CD-ROM with video and/or audio data thereon, whereby the CD-ROM is inherently provided with Internet start-up and connecting program that automatically and directly connects the end-user's computer to the company's or content provider's host server via the Internet, whereby, not only does such facilitate and encourage the connection of the end-user to the content provider's web page, but also provides the content provider with valuable marketing information, such as the physical location of the caller, whereby selected information unique to that caller may be downloaded to him over the Internet, such as name and addresses of stores of the company or advertiser nearest to the caller, etc.
It is another objective of the present invention to provide such video imaging, with or without audio, such that the use of the E-mail system or the Internet system itself is entirely obviated.
It is another objective of the present invention to provide such video imaging, with or without audio, such that the data representing the video and/or audio is accessed off the end-user's CD-ROM, with the transmitted de-crippling triggering data from the content provider's host server (URL) being a trigger as small as a few bytes.
It is another objective of the present invention to allow by server permission only, the end-user the ability to store said trigger on non-volatile media for permanent ownership of said data.
It is also an objective of the invention to provide a software program in the end-user computer called a "catcher" for catching the trigger data such as the file header, decoding it, and playing the file header data substantially "on the fly" , so that the video and/or audio data on the CD-ROM may be played back on the end-user's computer substantially immediately after having received the trigger data.
It is also an objective of the invention to store both the video files and the video player for playing the video files in encrypted form at the Web site associated with a server of the Internet or Intranet, which encrypted video files and video player are downloaded to a requesting computer having the software decryption keys for the encrypted video files and player, whereby the video files are protected from unauthorized playback.
It is also the primary objective of the present invention to provide a method and system for implementing the pay- per-view DVD-ROM system, whereby the enabling data provided to the DVD-player allowing the playback of the DVD-ROM (Hyper-DVD) video data is provided to the DVD-player via the Internet or via the cable-TV system provider.
It is also the primary objective of the present inven- tion to provide a method and system for playing back DVD-ROMs which system discriminates between DVD-ROM's requiring pay- per-view play, and those that are free and do not require pay-per-view play.
It is also the primary objective of the present invention to provide a method and system for playing back DVD-ROMs which system discriminates between DVD-ROM's requiring pay- per-view play, and those that do not, by the use of a special code for the header of the DVD-ROM indicating a pay-per-view title.
Toward these and other ends, the method of the invention for transmitting the de-crippling triggering data for video and/or audio off a CD-ROM ("HyperCD") over the Internet consists of encoding the data representing critical information of the file keys such as the header of the video/audio files on the CD-ROM, and transmitting that encoded key to the local server of the local web of the Internet serving the caller, or end-user computer. The local server then establishes a point-to-point socket-connection between the transmitting, host computer, and the receiving or end-user computer, thereby obviating the need to send the actual video data over the Internet . When the encoded key is received by the receiving, or end-user, computer, the data is decoded and matched to the video/audio files of the CD-ROM, whereupon, since the data files on the CD-ROM now have an associated and complete header, the data thereof may be read, to thus allow the instant playback of the video-audio data on the CD-ROM.
Since the encoded header data that is sent over the Internet is a necessity before the end-user may playback the video/audio data from the CD-ROM, the host computer may send along with the encoded data, additional information pertinent to the information contained on the CD-ROM, such as current prices, special offers or deals, locations of local stores or dealers, or any information that the host computer, content provider, would like the end-user to receive.
In order to encourage the end-user to view the video/audio, the CD-ROM is provided with its own Internet dial-up program files for connecting to the host web server, so that very little time and effort is required on the part of the end-user.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention will be more readily understood with reference to the accompanying drawings, wherein:
Figure 1 is a pictorial representations of the hardware systems and software processes used for carrying out the present invention;
Figure 2 is a block diagram showing the hardware of the end-user's computer used for carrying out the present invention;
Figure 3 is a flow chart at a user's computer for accessing the trigger-data from a web-site;
Figure 4 is a flow chart for the server associated with the Internet for evaluating the trigger-request from the user's computer and for sending the trigger;
Figure 5 is a block diagram showing the socket-to-socket connection for transmitting the de-crippling, triggering key for causing the display of the video images and/or audio data of a "HyperCD" at the end-user's PC over the Internet from a host computer combined with a targeted URL to a recipient or end-user's computer;
Figure 6 is a block diagram showing the steps for forming on the CD-ROM the encoded video and audio data for use by the end-user recipient computer after having been crippled by removing the header-triggering key sent from the media files;
Figure 7 is a block diagram showing the process of triggering in order to invoke "HyperCD" video and/or audio data at the receiving computer for playback;
Figure 8 is a pictorial representation of the hardware component and software processing involved;
Figure 9 is a flow chart showing the server-side of the Internet with the encrypted files thereat;
Figure 10 is a flow chart showing the "catcher" program of the invention at the ens-user's computer for playing back the receiving data immediately;
Figure 11 is a block diagram of the catcher-program process;
Figure 12 is a block diagram of a modification of the invention where instead of using a CD-ROM, the video and/or other information is downloaded via the Internet from a Web page, which video and/or other information is encrypted with a key, with the user's computer storing the corresponding decryption key therefor; and
Figure 13 is a block diagram of the DVD-ROM player system of the invention allowing both pay-per-view DVD-ROM play and conventional, non-pay-per-view DVD-ROM play.
DETAILED DESCRIPTION OF THE INVENTION
Referring now to the drawings in greater detail, and to Figures 1 and 2 for now, the hardware used to carry out the present invention is shown. All of the hardware is conventional and well-known, and includes an end-user computer 1 having a CD-ROM drive 2 for playing a CD-ROM 3 having stored thereon crippled data 4 that is unreadable without first having received a trigger or uncrippling key 5. The end- user 's computer 1 is connected via the Internet 6 to a host- computer server 7 which has stored thereat the uncrippling or triggering key 5 for the information stored on the end-user's CD-ROM 3. The end-user's computer 1 has a display and a CPU 9 and a communication-device, such as a modem 10 for establishing communication with the Internet 6. The computer 1 also has the CD-ROM drive 2, hard-drive 11, RAM 13, and video system 8 including monitor as well as audio system 13.
Referring to Fig. 3, there is shown the flow charts for receiving the uncrippling key. The end-user first submits a request over the Internet for the uncrippling key (block 60) . The user then waits for that key (block 62) , and if the user is not authorized, the request is denied. If the request is authorized, then the uncrippling key is sent by the server and received by the end-user's computer (block 64), whereupon the end-user's computer directs the uncrippling key into volatile memory such as RAM, not into a RAM-disk to be vis- ible, but saved in a dynamically allocated data structure in RAM accessible only by the receiving program, combined with crippled data read from the CD-ROM and displays the video/animation (block 68) .
Figure 4 shows the process-flow that at the server side. The server conventionally provides the web pages to the Internet users (block 70) , and awaits a user-request (block 72) . If a request is received from an end-user's computer, the server evaluates the request (block 74) in order to authorize the transfer of the uncrippling key (block 76) . If an authorization is granted, then the uncrippling, trigger key is sent (block 78) .
Referring now to Figs. 5-7, video images and/or audio are converted from analog to digital and stored in crippled fashion in digitized format (block 10) on CD-ROM 3. The crippling of the CD-ROM is achieved by removing critical information such as the video-audio header, whereupon such video/audio data is rendered unreadable by the end-user's computer. The "HyperCD" 3 is provided with the URL (web page) of the designated host computer, or server, (block 14) , such, as for example: http://tekweb.com/hypercd/adver/lotto.html, which may be used on the CD-ROM for the Illinois Instant Lottery video advertising. Such digitized format may be existing computer memory files (block 12) that are already in binary format, or may be original files originated by recording the video and/or audio, as by a camcorder or tape, etc., and converting the analog signals into digital, or binary, code. In the case of originating files, the analog data may be converted to digital data using an INTEL "Smart Video Reorder Pro", for example. The raw binary data that is stored on the "HyperCD" (block 16) is crippled, so the only way to access the data is a socket-to-socket connection with the server of the web page of the host . By means of the process performed in block 14, the CD-ROM contains a code representing the URL web page of the host computer where the necessary de-crippling key is located. This data on the CD-ROM 3 will automatically call up and connect the end-user's computer to the host computer's server 7 on the Internet, whereby a socket-to-socket connection is made therebetween (block 18) . Such an automatic connection is well-known, and will automatically find the end-user's browser, will call the Internet service provider, and pass the necessary links from the CD- ROM to the browser in order to get to the host ' s web page . Such software is available on the "Windows 95" operating system, such as "ActiveX" . The host computer then sends back to the local server serving the end-user's computer the necessary, uncrippling trigger for the specific video/audio data on the end-user's CD-ROM (block 20). From the local server, the data is sent out directly over the Internet to the end-user, and, in particular, to the RAM 12 of the end- user's computer (block 22). In RAM, the trigger (block 22), and the data on the CD-ROM 3 are combined, and played back (block 24), as described above. However, as will be explained hereinbelow, since the key 5 is being sent via Internet 6, the end-user's computer 7 must be equipped with the requisite software which is capable of receiving data from the server 7 and which will ensure that the received encoded key 5 is placed safely in RAM 12, and not allowed to be otherwise saved in hard drive 11 where it may be captured and used in a way not authorized by the server 7.
Referring to Figure 6, at the end-user computer end, the raw analog data of the audio/video is digitized (block 30) , as explained above, and stored on CD-ROM 3 by conventional techniques. During the storage of the data on the key or critical information of the media file such as video-audio header associated with the video/audio files will be omitted from storage on the CD-ROM, whereupon the CD-ROM is crippled, or prevented from being read for playing back the video/audio files (block 32) . The CD-ROM is provided with software for linking up the host-computer which has the necessary key 5 for uncrippling the video-audio files 4 on the CD-ROM 3, which linking software maps or automatically directs the end- user's computer to the host server via the Internet, such linking software having all of the necessary routing information for directing the Internet connection to the host computer's server and web page (URL) (Block 34) . The encoding of the critical information such as "Header" trigger is achieved utilizing any conventional encoding program, such as, for example, RSA by Data Security (block 36) . This encoding will create a trigger of a few bytes comprising all of the necessary information to trigger the CD-ROM, and to invoke the video and/or audio data.
Figure 7 shows the steps involved for de-crippling the data on the CD-ROM 3 of a receiving or end-user's computer 1 (block 40) . A socket-to-socket connection is made between the host, or sending, computer and the receiving, or end-user's computer by means of the linking software described above installed on the end-user's computer (block 42). The Internet Service Provider (ISP) of the end-user's computer's web of the Internet sends the data to the host computer's server over the Internet, which means that any number of local servers and gateways and routers will have been involved in transmitting the data, until it finally arrives at the server
7 serving the web associated with the host computer (block 42) . As soon as this socket-to-socket connection is made, the encoded trigger 5 is sent, at a rate of about 3.6 kbytes a second (block 44) . The end-user's computer has a specially- dedicated software program for catching the key, decrypting the key 5 from the server and data from the CD-ROM 3, combining the key and data and playing it back. This catcher is a software program discussed hereinbelow that will direct the incoming key, such as the header, to a random location in RAM
8 such as cache directory, of the computer (block 46) and the key will only be visible to the program. The catcher is necessary, since, if it were not present, it is the "nature" of personal computers to randomly dump data which has not had a specific destination assigned to it. Thus, without the catcher, the incoming data may be strewn into a different directory and/or sub-directories, to, thus, be irretrievably lost . As soon as the encoded key 5 arrives and is stored in RAM by means of the catcher program, a subroutine "player" in the program in the receiving computer begins to decode the trigger, in order to invoke the correct track of the CD-ROM (block 48) , from which the data passes to the audio/video subsystem (8,13, Fig. 2), in order to play the video or audio (block 50) . It is noted, and emphasized, that as soon as the key has been decoded, the video and/or audio data is immediately "played" back by the audio/video subsystems (8,13, Fig. 2) , bypassing the necessity of having to first store the key, or other trigger, on a hard drive before playback. Referring specifically to Fig. 8, there are shown the server 1, the user computer 2, and the software processes 3 used for transmitting the uncrippling key 4 over a network 5, the combining in RAM 6 of the key 4 and crippled data 7 from the CD-ROM 8, the rendering or displaying of the media data 9 such as video/audio or animation on the display 10 or from the audio system 11, and the storing of the key 4 to nonvolatile media 13, such as a hard drive, for permanent ownership of the encrypted CD media.
It is noted that it is possible to "cripple" the video/audio data on the CD-ROM by other means other than deleting the header thereof. For example, the file could be made a hidden file, with the trigger data from the host computer being a command to remove the hidden status . Alternatively, the video/audio file could have a changed extension, with the trigger data from the host computer being a command to change the extension. Moreover, the crippling of the video/audio file may be achieved by the use of ZIP file, with the trigger data from the host computer being a command to UNZIP the data. It is, also, within the scope and purview of the invention to use a floppy disk for storing the crippled file, as described above, for those applications requiring less disk-memory, with the uncrippling data from the host server being sent to the floppy-disk drive via the catcher program, as described above for uncrippling the data on the floppy-disk. Of course, the crippled file may also be stored on any storage medium, such as the hard drive 11, with the uncrippling data from the host server being sent to the drive for that storage medium via the catcher program, as explained above. The uncrippling data may also be stored directly in a hard drive or EPROM so that the user has permanent access to it whenever he wishes to uncripple the file; that is, if the user wishes to permanently retain the crippled nature of the data on the CD-ROM, or floppy, he may permanently store the downloaded uncrippling data in hard drive in order to temporarily uncripple the data on the CD-ROM or floppy every time that it is used, as long as such access is authorized by the server.
Referring to Figs. 9-11, the above-discussed "catcher" program is shown. Encrypted files, such as the header for the crippled CD-ROM data at an end-user's computer, is stored at a server associated with the Internet (block 100 in Fig.9). This header-trigger or other file is encoded and encrypted in a conventional manner at the server (blocks 102, 104). This encoding will create a header of about 50K or less comprising all of the necessary information necessary to the video and/or audio data on the CD-ROM, as is well-known in the art. Then, the encoded data is sent to the local web server (block 36) in order to be sent out over the Internet, and then to the end-user computer. When the end-user computer requests that the trigger be downloaded, according to the process described above (block 106 of Fig. 10) , the catcher program at the end-user computer receives the partial data or trigger, such as a header for the CD-ROM file (block 108) . The catcher program decodes the data, using a conventional decoder (block 110) , and then sends the data directly the conventional player of end-user computer (block 112) for substantially immediate playback. As soon as the encoded header arrives and stored in the cache directory, the program entitled "player" in the receiving computer begins to decode the data, in order to re-generate the original binary code, from which the data passes to a conventional digital-to- analog converter, in order to play the video or audio. It is noted, and emphasized, that as soon as the header has been decoded, the video and/or audio data starts to play back by the digital-to-analog converter. That is, it is not necessary to store the trigger data on a hard drive, although it is possible to do so, if it is desired to allow the end-user unobstructed access to the video or audio files on the CD- ROM, or the like, at any time in the future.
Referring to Fig. 12, an alternative embodiment is shown. In this embodiment, the use of a hyperCD is obviated, and the video and/or audio, and other data, is downloaded via the Internet from a Web page (block 150) . The video and/or audio, and other data, are encrypted with an encryption key. Each user who is to be able to access the data at that Web page will have a corresponding decryption key (block 152) for decrypting the data. In addition to the video or graphic or other data being sent, the Web site will also download the video player, such as JPEG, "QUICKTIME", or the like, to the user's computer via the Internet. The player, such as JPEG, is also encrypted, so that even after the end user has received the video and other data from the Web site via the Internet, the conventional player stored on the user's computer (block 154) will not be able to play the video. The data emanating from the Internet is first identified with the requesting file of the user's computer (block 158), and then sent to the media player for playback (block 160) using the encrypted player, downloaded from the Web site. The encrypted player, such as JPEG, is decrypted, like the video data, using the decryption key (block 152) provided by the provider of the Web site. It is noted that before the video is downloaded from the Web site via the Internet, the user must first enter his password or other protective feature. According to this embodiment of the invention, videos at a Web site are protected from being viewed without proper authorization, and if the downloaded video were stored in memory of the user's computer, it would not be playable without first downloading the encrypted player, such as JPEG, from the Web site. Thus, the Web provider is able to protect his video and/or graphic data from being copied by the end user's computer. Although the end user may be able to print out a graphic, this would be of very poor quality. It is also within scope and purview of the invention to download only the encrypted player, for playing back encrypted video and/or graphics already stored on the requesting, end user's computer. In this case, the video data may be supplied to the end user in other forms besides the Internet or Intranet, but still may not be played back without use of the encrypted player downloaded from the Web site and then decrypted by the decrypting key at the end user's computer. Alternatively, the encrypted player may be provided to the end user, and only the encrypted video files may be sent over the Internet or Intranet .
Referring now to Fig. 13, a DVD-ROM disk 10 contains a full-length movie, play, special event, and the like. For playing the DVD-ROM, there is provided a DVD-ROM player 12, such as MPEG-2 for playing the video on a TV or monitor 14. Associated with the player is a microprocessor or CPU 16, such as that forming part of a PC, or a dedicated microprocessor. The microprocessor 16 conventionally communicates with the DVD-player 12 via data ports 18. Associated with the microprocessor is memory storage 20 for storing software that allows the system of the invention to discriminate between DVD-ROM's requiring pay-per-view play, and those that are free and do not require pay-per-view play. Specifically, when the DVD-ROM to be played is provided with one of the three parental codes, then the software of the invention will treat that DVD-ROM in the conventional manner, by allowing instant playing thereof. Referring to Fig. 1, this is seen by the software determining that a non-pay-per-view DVD-ROM is present, or non-Hyper-DVD disk, and will automatically pro- vide a trigger-signal 24 to a data switch 26. The data switch, upon receiving the trigger-signal, will connect a conventional decryption chip 28 to the DVD-player 12, whereupon the data on the DVD-ROM is decrypted and played back, in the conventional manner.
If the software of the invention has determined that the DVD-ROM 10 is a Hyper-DVD, that is, a pay-per-view DVD, by detection of a code 4 rather than one of the three parental codes, via the header extension or binary code on the DVD- ROM, then the communications-portion 30 of the software of the invention will seek to retrieve the enabling data from a service provider by calling the service-provider over the PSTN. According to the invention, this enabling data may be obtained from the Internet, or, alternatively, via a cable company service provider for those users having cable TV service. In the case of obtaining the enabling data from a cable-TV company, the standard cable-box or set-tip box converter 32 is used for the communications. Also, for those users who utilize a cable box having Internet accessing device, the microprocessor 16 may be that microprocessor of the Internet accessing device itself, with the enabling data being transmitted from the Internet or from the cable TV provider. Instead of using a fourth parental code 4 for indicating the presence of a Hyper-DVD-ROM, a separate and distinct country code may be used, which country code, instead of representing an actual country, represents the a Hyper-DVD. The enabling data for allowing access to the DVD- ROM data may be any of those set forth in Applicants' above- mentioned copending patent applications, such as missing header, etc., and may also include conventional password, ID, security methods, or other standard verification keys, which are well-known and conventional.
After the user's software requests the downloading of the enabling data, the service provider will either send the data, of the requester is a valid customer and current on his account, or will reject the request. If the service provider transmits the necessary enabling data, then the software portion 30 of the invention sends the trigger-data 24 to the data switch 26 to connect the decryption chip 28 to the DVD- player 12.
While the invention is preferably suited for DVD-ROM disks, other large-storage disks, such as laser disks, video disks, etc., may embody the invention. Also, the invention may be used for those DVD-ROMs that do not employ parental and/or country codes; in this case, the code on the DVD-ROM for indicating that it is a Hyper-DVD requiring a verification key or password from a service-provider may be any of those set forth in Applicants' copending applications listed above, such as supplying the missing header, or any other data for uncrippling the crippled data on the DVD-ROM. Also, the use of a password or key, and the like, which would be provided by the service-provider if the requester passes a set of requirements, such as credit check, and the like, may be used. The following is the software code listing for the server of the host computer's web for bursting the encoded "header" trigger data through the Internet.
SENDFILE . C
# ! /usr/sbin/perl
# Get the input read (STDIN, $buffer, $ENV{ ' CONTENT_LENGTH' } ) ;
# Split the name-value pairs ©pairs = split (/&/, $buffer) ; foreach $pair (©pairs)
{
($name, $value) = split (/=/, $pair) ;
# UN-Webify plus signs and %-encoding $value =~ tr/+/ /;
$value =~ s/%( [a-fA-FO-9] [a-fA-FO-9] ) /packC'C", hex($l)) /eg;
$FORM{$name} = $value;
# Location of the CMC files
$CMCDIR = ' /UL/people/CMC/ ' . $FORM{ ' dir ' ) ;
# If the $CMCDIR director is not found, exit if ( ! -d "$CMCDIR" )
{
&Error ("$CMCDIR not found on this system. Please check the path and try agai n\n") ;
}
# If there are no files in the CMC directory no point trying to transfer files else
{ opendir( THISDIR, "$CMCDIR" );
©allfiles = grep (/\ .CMC/, readdir (THISDIR) ) ; if( ! ©allfiles ) {
&Error ("There are currenly no CMC files in this directory. Try again later."); } sort ©allfiles; } print ( "HTTP/1.0 200\n"); print ( "Content-type : multipart/x-mixed-replace ;boundary= ThisRando String \n\n") ; print (" ThisRandomString \n") ; #Send the First file with .IVD extension which invokes IVIDEO . EXE print "Content-type: application/x-IVD\N\N" ;
$CONTENT = "cat $CMCDIR/CMC001. IVD"; print $CONTENT; print ("\n ThisRandomString \n") ;
# Now send rest of the .CMC files which would call filehdl.exe while (©allfiles)
{
$file = shift ©allfiles; print "Content-type: application/x-CMC\n\n" ; print "$file\n";
$CONTENT = "cat $CMCDIR/$file"; print $CONTENT; print ("\n ThisRandomString \n") ;
# Subroutine that tells whats wrong sub Error
{ print ("Content-type: texxt/html\n\n") ; print ("<Title>Error</Title>\n") ; print ("<Hl>Error: </Hlxp>\n"); print (@_) ; print ( " <pχpxhrχa href =\ "mailto : cmcinter\
©suba . com\
">Contact webmaster </a>"); exit ( ) ;
}
COPYRIGHT - 1996 PLANET GRAPHICS, INC.
The following is the software code listing at the host- computer for encoding the "header" binary data into seven- digit ASCII text format, and also listed is the software code listing for the "player", or decoder, at each receiving, or end-user, computer, for decoding the encoded text format back into binary:
HOOK MENU1 MENU LOADONCALL MOVEABLE DISCHARDABLE
{ " POPUP "&File"
{ MENUITEM "ScEncode... ", 1169
MENUITEM " &Decode ... " , 1170 }
POPUP "&Actions"
{ MENUITEM "^Concatenate Files...", 1171
MENUITEM "SView A Report File...", 1172 MENUITEM "C&lean Directories...", 1173 MENUITEM SEPARATOR
MENUITEM "&Disρlay Wincode Task", 1174 MENUITEM "&Hide Wincode Task", 1175 }
POPUP "&Options"
{
MENUITEM "&Encode... " , 1176 MENUITEM "&Decode... ", 1177 MENUITEM "&Wincode... ", 1178 MENUITEM "&Winsort ... " , 1179 MENUITEM SEPARATOR MENUITEM "&Viewer ... " , 1180 MENUITEM SEPARATOR MENUITEM "&ZIP/UNZIP... ", 1181 MENUITEM SEPARATOR MENUITEM "&Hook App ... ", 1182
POPUP "&Help"
MENUITEM "^Contents", 1183
MENUITEM "&Search for Help on...", 1184
MENUITEM "&How to Use Help", 1185
MENUITEM "&Wincode FAQ", 1186
MENUITEM "C&opyrights", 1187
MENUITEM SEPARATOR
MENUITEM "O&rdering the Help file...", 1188
MENUITEM SEPARATOR MENUITEM "&About Wincode...", 1189
} MENUITEM SEPARATOR
MENUITEM "&UnHook Wincode", 1190
MENUITEM SEPARATOR
MENUITEM "E&xit Wincode", 1191
}
HOOK MENU2 MENU LOADONCALL MOVEABLE DISCARDABLE
{ " POPUP "&File"
{ MENUITEM "&Encode... " , 2269
MENUITEM "&Decode... ", 2270 }
POPUP "SActions"
{ MENUITEM " ^Concatenate Files...", 2271
MENUITEM "S-View A Report File...", 2272
MENUITEM "C&lean Directories...", 2273
MENUITEM SEPARATOR
MENUITEM "&Display Wincode Task", 2274
MENUITEM "&Hide Wincode Task", 2275
} POPUP "S-Options"
MENUITEM "&Encode... ", 2276
MENUITEM "&Decode... ", 2277
MENUITEM "&Wincode... ", 2278
MENUITEM "fcWinsort... ", 2279
MENUITEM SEPARATOR
MENUITEM "&Viewer ... " , 2280
MENUITEM SEPARATOR
MENUITEM "&ZIP/UNZIP... ", 2281
MENUITEM SEPARATOR
MENUITEM "&Hook App... ", 2282
POPUP "&Help"
MENUITEM "SContents" , 2283
MENUITEM "ScSearch for Help on...", 2284
MENUITEM "&How to Use Help", 2285
MENUITEM "SWincode FAQ", 2286
MENUITEM "C&opyrights", 2287
MENUITEM SEPARATOR
MENUITEM "O&rdering the Help file...", 2288
MENUITEM "&About Wincode...", 2289
} MENUITEM SEPARATOR MENUITEM "ScUnHook Wincode", 2290
MENUITEM SEPARATOR
MENUITEM "E&xit Wincode", 2291
}
HOOK_MENU3 MENU LOADONCALL MOVEABLE DISCARDABLE
( POPUP "S-File"
{ MENUITEM "ScEncode... ", 3369
MENUITEM "ScDecode... ", 3370
}
POPUP "&Actions"
{ MENUITEM " ScConcatenate Files...", 3371
MENUITEM "&View A Report File...", 3372
MENUITEM "C&lean Directories...", 3373
MENUITEM SEPARATOR
MENUITEM "δcDisplay Wincode Task", 3374
MENUITEM "Hide Wincode Task", 3375
}
POPUP "ScOptions"
{ MENUITEM "ScEncode... " , 3376 MENUITEM "ScDecode... ", 3377 MENUITEM " &Wincode ... " , 3378 MENUITEM "ScWinsort... ", 3379 MENUITEM SEPARATOR MENUITEM "&Viewer ... " , 3380 MENUITEM SEPARATOR MENUITEM "&ZIP/UNZIP...", 3381 MENUITEM SEPARATOR MENUITEM "&Hook App ... ", 3382
POPUP "&Help"
MENUITEM "δcContents", 3383 MENUITEM "&Search for Help on...", 3384 MENUITEM "&How to Use Help", 3385 MENUITEM "&Wincode FAQ", 3386 MENUITEM "C&opyrights", 3387 MENUITEM SEPARATOR
MENUITEM "O&rdering the Help file...", 3388 MENUITEM SEPARATOR
MENUITEM "&About Wincode...", 3389 }
MENUITEM SEPARATOR MENUITEM "ScUnHook Wincode", 3390 MENUITEM SEPARATOR MENUITEM "E&xit Wincode", 3391 } HOOK_WORKING DIALOG LOADONCALL MOVEABLE
DISCARDABLE 100, 89, 141, 55
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION
CAPTION "Wincode Working... "
FONT 8, "MS Sans Serif"
LTEXT "", 103, 81, 19, 27, 8
LTEXT "", 102, 81, 9, 27, 8
PUSHBUTTON "&Stop", 104, 18, 37, 45, 13
PUSHBUTTON "&Quit", 105, 78, 37, 45, 13
RTEXT "Total Job:", -1, 12, 19, 66, 8
CONTROL "", -1, "STATIC", SS_BLACKFRAME I WS_CHILD I WS_VISIBLE, 6, 6, 129, 25
RTEXT "", 101, 12, 9, 66, 8 BASE64_TYPE DIALOG LOADONCALL MOVEABLE DISCARDABLE 71, 26, 123, 181
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU FONT 8, "MS Sans Serif"
{ DEFPUSHBUTTON "OK", 1, 12, 163, 45, 13
RADIOBUTTON "Application: &Octet-Stream: , 301, 12, 19, 99, 12,
BS_AUTORADIOBUTTON | WS_TABSTOP RADIOBUTTON "Application: ScPostscript : , 302, 12, 34, 99, 12,
BS_AUTORADIOBUTTON | WS_TABSTOP RADIOBUTTON "Image: ScJPEG" , 303, 12, 49, 99, 12,
BS_AUTORADIOBUTTON | WS_TABSTOP RADIOBUTTON "Image: ScGIF" , 304, 12, 64, 99, 12,
BS_AUTORADIOBUTTON | WS TABSTOP RADIOBUTTON "Image: &X-BMP" , 305, 12, 79, 99, 12
BS-AUTORADIOBUTTON | WS TABSTOP RADIOBUTTON "Video: &MPEG" , 306, 12, 94, 99, 12,
BS_AUTORADIOBUTTON | WS_TABSTOP RADIOBUTTON "Audio: X-&WAV", 307, 12, 109, 99, 12,
BS_AUTORADIOBUTTON | WS_TABSTOP PUSHBUTTON "Cancel", 2, 66, 163, 45, 13 GROUPBOX "Content-Type", 101, 6, 5, 111, 152,
BS-GROUPBOX I WS GROUP
}
DESC TEXT DIALOG LOADONCALL MOVEABLE DISCARDABLE 9,50,288,138
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU'
CAPTION "Descriptive Text will be added to first
Encoded file... "
FONT 8, "MS Sans Serif"
{
EDITTEXT 201, 6, 6, 276, 108, ES_MULTILINE | ES_AUTOVSCROLL
ES_WANTRETURN
WS_BORDER I WS_VSCROLL | WSJTABSTOP DEFPUSHBUTTON "OK", 1, 69, 120, 60, 13 PUSHBUTTON "Cancel", 2, 159, 120, 60, 13
}
DIR_SELECT DIALOG LOADONCALL MOVEABLE DISCARDABLE 15, 20,
147, 116
STYLE DS_MODALFRAME | WS_OVERLAPPED | WS_CAPTION |
WS_SYSMENUFONT 8, "Helv"
EDITTEXT 101, 42, 5, 98, 12, ES_AUTOHSCROLL | WS_BORDER 33
I WS_TABSTOP
DEFPUSHBUTTON "OK", 1, 88, 22, 50, 14LISTB0X 103, 6, 30, 64, 82, LBS_STANDARD | WS_TABSTOPPUSHBUTTON "Cancel", 2, 88, 41, 50, 14LTEXT "DScirectories: ", -1, 6, 18, 64 10LTEXT "ScDirectory: " -1, 6, 6, 36, lθ}EXISTS DIALOG LOADONCALL MOVEABLE DISCARDABLE 41, 34, 177, 54STYLE DS_MODALFRAME | WS_POPUP I WS_CAPTION I WS_SYSMENUCAPTION "Wincode - Output File"FONT 8, "MS Sans Serif" { PUSHBUTTON "SOverwrite" , 1, 9, 36, 45, 13 PUSHBUTTON "ScRename", 101, 66, 36, 45, 13 PUSHBUTTON "ScSkip File", 2, 123, 36, 45, 13 CTEXT "", 102, 21, 15, 135, 8 CONTROL "", "STATIC", SS_BLACKFRAME | WS_CHILD I WS_VISIBLE, 15, 6, 147, 2l}FILE OPEN DIALOG LOADONCALL MOVEABLE DISCARDABLE 40, 20, 202, 130STYLE DS_MODALFRAME | WS_OVERLAPPED | WS_CAPTION | WS_SYSMENUFONT 8, "Helv" { EDITEXT 100, 42, 6, 98, 12, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP DEFPUSHBUTTON "OK", 1, 146, 5, 50, 14 LISTBOX 102, 6, 44, 64, 82, LBS_STANDARD | WSJTABSTOP LISTBOX 103, 76, 44, 64, 82, LBS_STANDARD | WS_TABSTOP PUSHBUTTON "Cancel", 2, 146, 23, 50, 14 LTEXT "File&name : " , -1, 6, 8, 36, 10 LTEXT "Directory:", -1, 6, 20, 36, 10 LTEXT "", 101, 42, 20, 98, 10 LTEXT "ScFiles:", -1, 6, 32, 64, 10 LTEXT "ScDirectories : " , -1, 76, 32, 64, 10}RENAME DIALOG LOADONCALL MOVEABLE DISCARDABLE 34, 31, 199, 57STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENUFONT 8, "MS Sans Serif" { EDITEXT 102, 6, 21, 171, 12 ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP PUSHBUTTON "?", 103, 180, 20, 12, 13 DEFPUSHBUTTON "OK", 1, 42, 39, 45, 13 PUSHBUTTON "Cancel", 2, 111, 39, 45, 13 LTEXT "Enter a VALID DOS filename:", 104, 6, 6, 159, 9}VIEW_RPT DIALOG LOADONCALL
MOVEABLE DISCARDABLE 20, 43, 300, 154STYLE DS-MODALFRAME | WS POPUP I WS CAPTION I WS_SYSMENUCAPTION "Wincode - Report
File Viewer"FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 2, 111, 135, 78, 13
EDITTEXT 101, 6, 15, 288, 99, ES_MULTILINE | ES_READONLY I WS_BORDER I WS_VSCROLL | WS_HSCROLL | WS_TABSTOPCHECKBOX "ScDelete Report File After Viewing", 103, 6, 117, 138, 12, BS-AUTOCHECKBOX | WS_TABSTOP LTEXT "File:", -1, 7, 5, 15, 8 LTEXT "", 102, 25, 5, 270, 8}
COPYRIGHT - 1996 PLANET GRAPHICS, INC.
The following is the software code listing at each receiving, or end-user, computer, for the catcher for receiving the uncrippling data in the cache directory of RAM and directing it to the proper drive:
MAIN MENU MENU LOADONCALL MOVEABLE DISCARDABLE
{ "
POPUP"ScFile"
{
MENUITEM " ScEncode . . . " , 101
MENUITEM " ScDecode . . . " , 102
MENUITEM SEPARATOR
MENUITEM "EScxit", 1
}
POPUP " ScActions "
{
MENUITEM "ScConcatenate Files...", 103
MENUITEM "ScView a Report File...", 104
MENUITEM "CSclean Directories...", 105
MENUITEM SEPARATOR
MENUITEM "Sclnteractive Drag/Drop", 121
MENUITEM SEPARATOR
MENUITEM "Hook Wincode", 122
}
POPUP " ScOptions "
{
MENUITEM "ScEncode ... " , 106
MENUITEM "ScDecode... ", 107
MENUITEM "ScWincode... " , 108
MENUITEM "WScinsort ... " , 109
MENUITEM SEPARATOR
MENUITEM " ScViewer . . . " , 110
MENUITEM SEPARATOR
MENUITEM "ScZIP/UNZIP... ", 111
MENUITEM SEPARATOR
MENUITEM " ScHook App . . . " , 112
POPUP " ScHelp "
MENUITEM "ScContents", 113
MENUITEM "ScSearch for Help on...", 114 MENUITEM " Wow to Use Help", 115 MENUITEM "ScWincode FAQ", 116 MENUITEM "CScopyrights", 117 MENUITEM SEPARATOR MENUITEM "OScrdering the Help file 118 MENUITEM SEPARATOR
MENUITEM " ScAbout Wincode . . . " , 119
!
ABOUT DIALOG LOADONCALL MOVEABLE DISCARDABLE 76, 55, 135, 141 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "About CMCCODE" FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 2, 14, 123, 45, 13
PUSHBUTTON "More...", 1, 74, 123, 45, 13
CTEXT "CMCCODE:", -1, 45, 9, 45, 8
CTEXT "Video Encoder/Decoder" , -1, 10, 18, 114, 8
CTEXT "for the Internet", -1, 34, 27, 66, 8
CTEXT "Copyright\xA9 1993,1994", -1, 24, 72, 87, 8
CTEXT "Snappy_Inc. ", -1, 44, 63, 45, 8
CONTROL "", -1, "STATIC", SS_BLACKFRAME | WS_CHILD |
WS_VISIBLE, 6, 6, 123, 111 CTEXT "Version 1.0", -1, 40, 37, 54, 8
CTEXT "Developers Kit Provided by:", -1, 17, 49, 101, 8 CTEXT "created by Caesar Collazo", -1, 18, 82, 99, 8 CTEXT "cmcinter@suba.com", -1, 12, 103, 111, 8 CTEXT "Questions...Comments...e-mail to:", -1, 9, 93, 117, 8 CONTROL "", -1, "STATIC", SS_BLACKFRAME | WS_CHILD |
WS_VISIBLE, 12, 47, 111, 1 CONTROL "", -1, "STATIC", SS_BLACKFRAME | WS_CHILD | S rVISIBLE, 12, 59, 111, 1
ALL_ONE DIALOG LOADONCALL MOVEABLE DISCARDABLE 35, 31, 132, 60 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "CMCCODE - Encode Filename" FONT 8, "MS Sans Serif"
{
EDITTEXT 101, 28, 23, 75, 12, ES_AUTOHSCROLL | WS_BORDER I WS_TABSTOP
DEFPUSHBUTTON "OK", 1, 12, 42, 45, 13
PUSHBUTTON "Cancel", 2, 75, 42, 45, 13
CTEXT "Enter a filename for ALL the files:", -1, 6, 7, 120, 9
}
BASE64_MODE DIALOG LOADONCALL MOVEABLE DISCARDABLE 93,
54, 111, 69
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "BASE64 Method"
FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 1, 6, 51, 45, 13
RADIOBUTTON "ScMIME Conformant", 323, 12, 10, 87, 12,
BS_AUTORADIOBUTTON | WS_GROUP | WSJTABSTOP RADIOBUTTON "&Raw BASE 64", 324, 12, 25, 87, 12,
BS_AUTORADIOBUTTON | WSJTABSTOP PUSHBUTTON "Cancel", 2, 60, 51, 45, 13 GROUPBOX "", 106, 6, 2, 99, 42, BS GROUPBOX
}
CHOOSE V DIALOG LOADONCALL MOVEABLE DISCARDABLE 15, 20, 174, 78 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Select a Report File Viewer" FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 1, 36, 60, 45, 13
RADIOBUTTON "ScWincode Internal File Viewer (32K Max.)",
701, 12, 10, 150, 12, BS_AUTORADIOBUTTON |
WSJ3ROUP I WSJTABSTOP RADIOBUTTON "Windows ScNotepad" , 702, 12, 24, 150, 12,
BS_AUTORADIOBUTTON | WSJTABSTOP RADIOBUTTON "ScOther:", 703, 12, 38, 33, 12,
BS_AUTORADIOBUTTON | WSJTABSTOP EDITTEXT 704, 48, 38, 102, 12, ES_AUTOHSCROLL |
WS_BORDER I WSJTABSTOP PUSHBUTTON "?", 705, 153, 38, 12, 13 PUSHBUTTON "Cancel", 2, 93, 60, 45, 13 GROUPBOX "", 101, 6, 2, 162, 54, BS GROUPBOX
}
CLEAN_DIR DIALOG LOADONCALL MOVEABLE DISCARDABLE 52, 51, 228, 162
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Clean Directories" FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 1, 92, 143, 45, 13
CHECKBOX "", 601, 12, 19, 192, 12, BS_AUTOCHECKBOX | WSJTABSTOP
PUSHBUTTON "?", 605, 207, 19, 12, 13
CHECKBOX "", 602, 12, 34, 192, 12, BS_AUTOCHECKBOX | WSJTABSTOP
PUSHBUTTON "?", 606, 207, 34, 12, 13
CHECKBOX "", 603, 12, 49, 192, 12, BS_AUTOCHECKBOX | WS_TABSTOP
PUSHBUTTON "?", 607, 207, 49, 12, 13
CHECKBOX "", 604, 12, 64, 192, 12, BS_AUTOCHECKBOX | WSJTABSTOP
PUSHBUTTON "?", 608, 207, 64, 12, 13
CHECKBOX "Empty the ScClipboard (release global memory)",
612, 12, 102, 192, 12, BS_AUTOCHECKBOX | WSJTABSTOP PUSHBUTTON "?", 613, 207, 102, 12, 13
PUSHBUTTON "Clean ScAll Directories", 614, 12, 120, 96, 13 PUSHBUTTON "ScReport Files Only (*.rpt)", 615, 120, 120, 96, 13 PUSHBUTTON "Cancel", 2, 165, 143, 45, 13 PUSHBUTTON "ScHelp", 611, 19, 143, 45, 13 GROUPBOX "Select Directories to Clean", 101, 7, 5, 216, 93,
BS_GROUPBOX LTEXT "Status:", -1, 12, 83, 27, 8 LTEXT "", 610, 42, 83, 177, 8
}
DEC_CONFIG DIALOG LOADONCALL MOVEABLE DISCARDABLE 26, 26,
250, 147
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Decode Options"
FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON " OK" , 1 , 195 , 9 , 45 , 13
CHECKBOX "DuSctnp Files " , 301 , 12 , 9 , 69 , 12 , BS_AUTOCHECKBOX | WSJTABSTOP CHECKBOX "ScError Checking", 303, 87, 9, 72, 12,
BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Sort b&y Extension", 304, 87, 21, 72, 12,
BS_AUTOCHECKBOX | WS_TABSTOP PUSHBUTTON "EScXtension(s) ... ", 305, 6, 42, 66, 13 COMBOBOX 306, 120, 41, 42, 60, CBSJDROPDOWNLIST |
WS_VSCROLL I WSJTABSTOP EDITTEXT 307, 12, 70, 132, 9, ES_AUTOHSCROLL |
NOT WS_BORDER | WS_TABSTOP PUSHBUTTON "?", 308, 147, 67, 12, 13 RADIOBUTTON "DefScault to location of Input file",
309, 12, 99, 132, 12, BS_AUTORADIOBUTTON |
WSJ3ROUP I WS_TABSTOP RADIOBUTTON "User select Scon Decode", 310, 12, 112, 132, 12,
BS_AUTORADIOBUTTON | WSJTABSTOP RADIOBUTTON "ScSet:", 311, 12, 125, 27, 12,
BS_AUTORADIOBUTTON | WSJTABSTOP EDITTEXT 312, 42, 125, 102, 12, ES_AUTOHSCROLL |
WS_BORDER I WSJTABSTOP PUSHBUTTON "?", 313, 147, 124, 12, 13 RADIOBUTTON " ScWincode select", 314, 174, 110, 66, 12,
BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP RADIOBUTTON "SUser select", 315, 174, 125, 66, 12,
BS_AUTORADIOBUTTON | WS_TABSTOP PUSHBUTTON "Cancel", 2, 195, 27, 45, 13
PUSHBUTTON "ScDefaults", 316, 195, 45, 45, 13
PUSHBUTTON "ScHelp", 317, 195, 63, 45, 13
GROUPBOX "Decoded File Name", 102, 168, 96, 75, 45,
BS_GROUPBOX LTEXT "Code Type:", -1, 78, 44, 39, 8 GROUPBOX "Decoded File Directory", 101, 6, 87, 156, 54,
BS_GROUPBOX CONTROL "", -1, "STATIC", SS_BLACKFRAME | WS_CHILD |
WS_VISIBLE, 6, 6, 156, 30 GROUPBOX "Temp Directory", 103, 6, 59, 156, 24, BS_GROUPBOX
DEC_EXT DIALOG LOADONCALL MOVEABLE DISCARDABLE 49, 30, 144, 133 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Decode File Extension (s) " FONT 8, "MS Sans Serif"
{
EDITTEXT 318, 12, 25, 45, 12, ES_AUTOHSCROLL |
WS_BORDER I WSJTABSTOP PUSHBUTTON "ScAdd", 320, 12, 43, 45, 13 PUSHBUTTON "ScDelete", 321, 12, 61, 45, 13 PUSHBUTTON "AScSSOciate", 322, 12, 79, 45, 13 LISTBOX 319, 73, 26, 58, 69, LBS_NOTIFY |
WSJBORDER I WS_BORDER | WS_VSCROLL DEFPUSHBUTTON "OK", 1, 18, 115, 45, 13 PUSHBUTTON "Cancel", 2, 81, 115, 45, 13
LTEXT "Enter Decode Extension: (Max + 20)", -1, 12, 13, 120, 8 CONTROL "", -1, "STATIC", SSJBLACKFRAME | WS_CHILD |
WS VISIBLE, 6, 6, 132, 102 LTEXT "Ext. Count:", -1, 73, 95, 39, 8 LTEXT "", 323, 114, 95, 16, 8
}
DEL_FILES DIALOG LOADONCALL MOVEABLE DISCARDABLE 63,20,78,127
STYLE DS_MODALFRAME | WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU
FONT 8, "Helv"
{
DEFPUSHBUTTON "OK", 2, 16, 108, 45, 13
LISTBOX 609, 7, 19, 64, 82, LBS_STANDARD | WSJTABSTOP
CTEXT "Files being deleted:", -1, 4, 7, 69, 10
}
DIR_SELECT DIALOG LOADONCALL MOVEABLE DISCARDABLE 15,20,147,116
STYLE DS_MODALFRAME | WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU
FONT 8, "Helv"
E {DITTEXT 101, 42, 5, 98, 12, ES_AUTOHSCROLL | WS_BORDER
I WSJTABSTOP
DEFPUSHBUTTON "OK", 1, 88, 22, 50, 14
LISTBOX 103, 6, 30, 64, 82, LBS_STANDARD | WSJTABSTOP
PUSHBUTTON "Cancel", 2, 88, 41, 50, 14
LTEXT "DScirectories: ", -1, 6, 18, 64, 10
LTEXT "ScDirectory: ", -1, 6, 6, 36, 10
}
DONE DIALOG LOADONCALL MOVEABLE DISCARDABLE 21, 32, 207, 54
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "CMCCODE - Done!"
FONT 8, "MS Sans Serif"
{
CTEXT "", 101, 12, 14, 184, 9
CONTROL "", -1, "STATIC", SS_BLACKFRAME |
WS_CHILD I WS_VISIBLE, 6, 6, 195, 25
DEFPUSHBUTTON "OK", 2, 64, 36, 78, 13
}
DONE_SHOW DIALOG LOADONCALL MOVEABLE DISCARDABLE 21, 32, 207, 54
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "CMCCODE - Done!"
FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 2, 18, 36, 78, 13 PUSHBUTTON "ScView Report File", 1, 111,36, 78, 13 CTEXT "", 101, 12, 14, 184, 9
CONTROL "", -1, "STATIC", SS_BLACKFRAME | WS_CHILD | WS VISIBLE, 6, 6, 195, 25
}
DRAGDROP DIALOG LOADONCALL MOVEABLE DISCARDABLE 119,85,139,110
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Interactive Drag Sc Drop"
FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 1, 18, 92, 45, 13
RADIOBUTTON "ScEncode", 802, 13, 39, 48, 12,
BS_AUTORADIOBUTTON | WSJ3ROUP | WSJTABSTOP RADIOBUTTON "ScDecode", 803, 13, 53, 48, 12,
BS AUTORADIOBUTTON I WS TABSTOP RADIOBUTTON "EScXt. Based", 804, 13, 67, 48, 12,
BS_AUTORADIOBUTTON | WS_TABSTOP CHECKBOX "ScZip First", 805, 75, 39, 54, 12,
BS_AUTOCHECKBOX | WSJTABSTOP CHECKBOX "UScNZIP After", 806, 75, 53, 54, 12,
BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "ScWinsort First", 807, 75, 67, 54, 12,
BS_AUTOCHECKBOX | WS_TABSTOP PUSHBUTTON "Cancel", 2, 75, 92, 45, 13
GROUPBOX "Drop to:", 101, 7, 26, 57 57, BS_GROUPBOX GROUPBOX "Options : " , 102, 70, 26, 63, 57, BSJ3ROUPBOX COMBOBOX 801, 69, 7, 64, 66, CBS DROPDOWNLIST I
WS_VSCROLL I WSJTABSTOP LTEXT "CMC Method:", -1, 6, 10, 60, 8
}
ENC_CONFIG DIALOG LOADONCALL MOVEABLE DISCARDABLE 10, 23,
262, 189
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION WS SYSMENU
CAPTION "Encode Options"
FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 1, 206, 9, 46, 13
CHECKBOX "ScLine Checksums", 201, 12, 9, 72, 12,
BS_AUTOCHECKBOX | WSJTABSTOP CHECKBOX "ScFile Checksums", 202, 12, 24 72 12,
BS_AUTOCHECKBOX | WSJTABSTOP CHECKBOX "FilSce Headers", 203, 12, 39, 72, 12 CHECKBOX "File DescScription" , 204, 12, 54 72, 12,
BS_AUTOCHECKBOX | WSJTABSTOP CHECKBOX "DesSccriptive Name", 205, 12, 69, 72, 12,
BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "I&nclude Table", 206, 90 72, 12
BS_AUTOCHECKBOX | WSJTABSTOP CHECKBOX "Make EScMBL Files", 207 90, 24, 72, 12 CHECKBOX "SinScgle File", 208, 90 39, 72, 12 CHECKBOX "All Scln One File", 209 90, 54, 72, 12 CHECKBOX "Number bScy Ext.", 210, 90, 69, 72, 12 EDITTEXT 211, 123, 90, 42, 12 EDITTEXT 212, 123, 107, 42, 12 RADIOBUTTON "DefScault to location of input file" 213, 12,
138, 132, 12, BS_AUTORADIOBUTTON | WS_GROUP WS TABSTOP RADIOBUTTON "User select Scon Encode", 214, 12, 152, 132, 12,
BS_AUTORADIOBUTTON | WSJTABSTOP RADIOBUTTON "ScSet:", 215, 12, 166, 27, 12,
BS_AUTORADIOBUTTON | WS_TABSTOP EDITTEXT 216, 42, 166, 105, 12, ES_AUTOHSCROLL |
WS_BORDER I WSJTABSTOP PUSHBUTTON "?», 217, 150, 166, 12, 13 COMBOBOX 218, 213, 90, 42, 57, CBSJDROPDOWNLIST |
WSJ/SCROLL I WSJTABSTOP COMBOBOX 219, 213, 107, 42, 39 CBS_DROPDOWNLIST |
WSJVSCROLL I WSJTABSTOP RADIOBUTTON "ScWincode select", 220, 177, 148, 69, 12,
BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP RADIOBUTTON "ScUser select", 221, 177, 164, 69, 12, BS_AUTORADIOBUTTON | WS_TABSTOP PUSHBUTTON "Cancel", 2, 206, 27, 46, 13
PUSHBUTTON "ScDefault", 222, 206, 45, 46, 13 PUSHBUTTON "ScHelp", 223, 206, 63, 46, 13 CONTROL "" -1, "STATIC", SS_BLACKFRAME | WS_CHILD | WS_VISIBLE, 6, 6, 159, 78 LTEXT "Bytes per File (Lines/File):", 103, 6, 93, 114, 8 LTEXT "Extension for Encoded Files:", 104, 6, 110, 108,
GROUPBOX "Encoded File Name", 102, 171, 132, 84 51,
BS_GROUPBOX GROUPBOX "Encoded File Directory", 101, 6, 123, 159, 60,
BS_GROUPBOX LTEXT "Code Type:", 105, 171, 93, 39, 8 LTEXT "File Type:", -1, 171, 110, 39, 8
}
EXT INFO DIALOG LOADONCALL MOVEABLE DISCARDABLE 76, 55, 207, 111
STYLE DS_MODALFRAME | WS_POPUP j WS_CAPTION I WS_SYSMENU CAPTION "More About CMCCODE" FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 2, 81, 93, 45, 13
CONTROL "", -1, "STATIC", SS_BLACKFRAME |
WS_CHILD I WS_VISIBLE, 6, 6, 195, 81 CONTROL "", -1, "STATIC", SS_BLACKFRAME |
WS_CHILD j WS_VISIBLE, 13, 57, 180, 1
LTEXT 'CMCCODE Version:", -1, 15, 12, 72, 8 LTEXT 'WCodeDLL Version: ", -1, 15, 23, 72, 8 LTEXT 'HookDLL Version:", -1, 15, 34, 72, 8 LTEXT 'Release Date:", -1, 15, 45, 72, 8 LTEXT 'Memory:", -1, 15, 62, 72, 8 LTEXT 'System Resources:", -1, 15, 73, 72, 8 LTEXT 701, 90, 12, 105, 8 LTEXT 702, 90, 23, 105, 8 LTEXT 703, 90, 34, 105, 8 LTEXT 704, 90, 45, 105, 8 LTEXT 705, 90, 62, 105, 8 LTEXT 706, 90, 73, 105, 8
}
EXT_INFO DIALOG LOADONCALL MOVEABLE DISCARDABLE 76, 55, 207, 111
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS SYSMENU
CAPTION "More About CMCCODE"
FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 2, 81, 93, 45, 13
CONTROL "", -1, "STATIC", SS_BLACKFRAME | WS_CHILD I WS_VISIBLE, 6, 6, 195, 81
CONTROL " " , -1 , "STATIC", SSJBLACKFRAME | WS_CHILD I WS_VISIBLE, 13, 57, 180. 1
LTEXT "CMCCODE Version:", -1, 15, 12, 72, 8 LTEXT "WCodeDLL Version: ", -1, 15, 23, 72, 8 LTEXT "HookDLL Version: ", -1, 15, 34, 72, 8 LTEXT "Release Date:", -1, 15, 45, 72, 8
LTEXT "Memory: ■1, 15, 62, 72, 8 LTEXT "System Resources : " , •1, 15, 73, 72, 8
LTEXT "", 701, 90, 12, 105, 8
LTEXT "", 702, 90, 23, 105, 8
LTEXT "", 703, 90, 34, 105, 8
LTEXT "", 704, 90, 45, 105, 8
LTEXT "", 705, 90, 62, 105, 8
LTEXT "", 706, 90, 73, 105, 8
}
FILE_0_ZIP DIALOG LOADONCALL MOVEABLE DISCARDABLE 40,20,202,130
STYLE DS_MODALFRAME | WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU
FONT 8, "Helv"
{
EDITTEXT 100, 42, 6, 98, 12, ES AUTOHSCROLL WS BORDER
WSJTABSTOP DEFPUSHBUTTON "OK", 1, 146, 5, 50, 14 LISTBOX 102, 6, 44, 64, 82, LBS_STANDARD |
LBS_MULTIPLESEL | LBS_EXTENDEDSEL | WSJTABSTOP LISTBOX 103, 76, 44, 64, 82, LBS_STANDARD | WS_TABSTOP PUSHBUTTON "&A11 Files", 104, 146, 45, 50, 14 PUSHBUTTON ">> ScClipboard", 105, 146, 63, 50, 14 CHECKBOX "ScZIP First", 106, 146, 81, 51, 12,
BS_AUTOCHECKBOX | WSJTABSTOP PUSHBUTTON "Cancel", 2, 146, 23, 50, 14 LTEXT "File&name: ", -1, 6, 8, 36, 10 LTEXT "Directory:", -1, 6, 20, 36, 10 LTEXT "", 101, 42, 20, 98, 10 LTEXT "ScFiles:", -1, 6, 32, 64, 10 LTEXT "ScDirectories: ", -1, 76, 32, 64, 10 PUSHBUTTON "ScOptions... ", 107, 146, 105, 50, 14
}
FILE OPEN DIALOG LOADONCALL MOVEABLE DISCARDABLE 40,20,202,130
STYLE DS_MODALFRAME WS OVERLAPPED WS CAPTION WS SYSMENU FONT 8, "Helv"
{
EDITTEXT 100, 42, 6, 98, 12, ES AUTOHSCROLL I WS BORDER
WSJTABSTOP DEFPUSHBUTTON "OK", 1, 146, 5, 50, 14 LISTBOX 102, 6, 44, 64, 82, LBS_STANDARD | WSJTABSTOP LISTBOX 103, 76, 44, 64, 82, LBS STANDARD I WS TABSTOP PUSHBUTTON "Cancel", 2, 146, 23, 50, 14 LTEXT "FileScname: ", -1, 6, 8, 36, 10
LTEXT "Directory:", -1, 6, 20, 36, 10
LTEXT "", 101, 42, 20, 98, 10
LTEXT "ScFiles:", -1, 6, 32, 64, 10
LTEXT "ScDirectories:", -1, 76, 32, 64, 10
}
HEADERJTYPE DIALOG LOADONCALL MOVEABLE DISCARDABLE 93,54,111,81
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Header Type"
FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 1, 6, 63, 45, 13
RADIOBUTTON "ScWincode Standard", 224, 12, 10, 87, 12,
BS AUTORADIOBUTTON I WS GROUP I WS TABSTOP RADIOBUTTON " ScMIME Conformant", 225, 12, 25, 87, 12,
BS_AUTORADIOBUTTON | WSJTABSTOP PUSHBUTTON "Cancel", 2, 60, 63, 45, 13 GROUPBOX "", 106, 6, 2, 99, 54, BSJ3ROUPBOX CHECKBOX "ScGuess Content-Type " , 226, 12, 40, 87, 12,
BS AUTOCHECKBOX | WS TABSTOP
}
HOOK_APP DIALOG LOADONCALL MOVEABLE DISCARDABLE 10,74,277,117
STYLE DS-MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Hook Application Options"
FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 1, 222, 9, 45, 13
EDITTEXT 901, 75, 6, 135, 12, ES_AUTOHSCROLL |
WS_BORDER I WSJTABSTOP EDITTEXT 902, 75, 24, 120, 12, ES_AUTOHSCROLL |
WS_BORDER I WSJTABSTOP PUSHBUTTON "?", 903, 198, 24, 12, 13 CHECKBOX "ScCase Sensitive Application Name", 904,80,45,126,12,
BS_AUTOCHECKBOX | WSJTABSTOP CHECKBOX "ScPrompt for Application on Hook", 905,80,57,126,12,
BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "HScide Wincode when Hooked", 906,80,69,126,12,
BS_AUTOCHECKBOX | WSJTABSTOP CHECKBOX "ScAuto-Hook Wincode on Startup", 907,80,81,126,12,
BS_AUTOCHECKBOX | WS_TABSTOP PUSHBUTTON "ScTune...", 910, 222, 97, 45, 13 PUSHBUTTON "Cancel", 2, 222, 27, 45, 13 PUSHBUTTON "ScDefault", 908, 222, 45, 45, 13 PUSHBUTTON "ScHelp", 909, 222, 63, 45, 13 LTEXT "Application Name:", -1, 7, 10, 66, 8 LTEXT "Application Path:", -1, 7, 27, 66, 8 CONTROL "", -1, "STATIC", SSJBLACKFRAME | WS_CHILD |
WS_VISIBLE, 75, 42, 135, 54 ICON "THOOK_ICON", -1, 27, 69, 18, 20
LTEXT "Advanced Options:", -1, 7, 45, 66, 8 LTEXT "If you are having problems Hooking an application, try this >", -1, 7, 100, 213, 8
HOOKJTUNE DIALOG LOADONCALL MOVEABLE DISCARDABLE 81,74,151,96 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Hook Tuning" FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 1, 24, 78, 45, 13
CHECKBOX "ScCreate Window List on Hook", 911,12,11,126,12,
BS_AUTOCHECKBOX | WSJTABSTOP CHECKBOX "ScSkip Opening Window", 912,12,25,90,12,
BS_AUTOCHECKBOX | WSJTABSTOP EDITTEXT 913, 108, 39, 30, 12
COMBOBOX 914, 108, 54, 30, 39, CBS_DROPDOWNLIST | WSJTABSTOP PUSHBUTTON "Cancel", 2, 81, 78, 45, 13 CONTROL "", -1, "STATIC", SS_BLACKFRAME | WS_CHILD |
WS VISIBLE, 6, 6, 138, 66 LTEXT "Set Hook Delay (seconds):", -1, 12, 42, 93, 8 LTEXT "Set Hook Menu Range:", -1, 12, 57, 93, 8
}
MEMORY_SWAP DIALOG LOADONCALL MOVEABLE DISCARDABLE 63,65,132,66
STYLE DS_MODALFRAME j WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "CMCCODE - Memory Swap"
FONT 8, "MS Sans Serif"
E {DITTEXT 101, 37, 30, 28, 12, ES_AUTOHSCROLL | WSJBORDER |
WSJTABSTOP
DEFPUSHBUTTON "OK", 1, 12, 48, 45, 13
PUSHBUTTON "Cancel", 2, 75, 48, 45, 13
CTEXT "Enter a memory allocation swap", -1, 6, 7, 120, 9
CTEXT "value (range + 256KB to 16MB):", -1, 6, 16, 120, 9
LTEXT "KBytes", -1, 68, 32, 27, 8
}
OPJTOOLBAR DIALOG LOADONCALL MOVEABLE DISCARDABLE 102, 57,
104, 112 STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Options Toolbar" FONT 8, "MS Sans Serif"
{
PUSHBUTTON "ScEncode...", 1001, -1, 0, 105, 14
PUSHBUTTON "ScDecode...", 1002, -1, 14, 105, 14
PUSHBUTTON " ScWincode ... " , 1003, -1, 28, 105, 14
PUSHBUTTON "WScinsort... ", 1004, -1, 42, 105, 14
PUSHBUTTON "ScViewer... ", 1005, -1, 56, 105, 14
PUSHBUTTON "ScZIP/UNZIP... ", 1006, -1, 70, 105, 14
PUSHBUTTON " ScHook App ... " , 1007, 84, 105, 14
PUSHBUTTON "EScxit Toolbar", 2, -1, 98, 105, 14
}
ORDER_HELP DIALOG LOADONCALL MOVEABLE DISCARDABLE
61, 21, 228, 258 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Ordering the Help file" FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "THANKS!", 2, 77, 240, 75, 13
LTEXT "To order the Wincode Help file, send $5.00
(U.S. Dollars) to: -1, 13, 9, 204, 8 CTEXT "CMC Interactive\xAE", -1, 58, 21, 114, 8 CTEXT "8 S. Michigan Ave ." , -1, 58, 29, 114, 8 CTEXT "Suite 2003", -1, 58, 37, 114, 8 CTEXT "Chicago, IL 60606", -1, 58, 45, 114, 8 LTEXT "This price and address are guaranteed until 6/1/95.
If you", -1, 13, 57, 204, 8 LTEXT "wish to obtain the Help file after this date, please e-mail", -1, 13, 65, 204, 8 LTEXT "first for updated information. Make checks payable to:
-1, 13, 73, 204, 8 CTEXT "CMC Interactive", -1, 13, 83, 204, 8 LTEXT "By ordering Help, you obtain the following:",
-1, 13, 112, 204, 8 LTEXT " l)The most recent version of Wincode with the Help file", -1, 13, 122, 204, 8
LTEXT " 2) Directly e-mailed pre-releases of future versions of", -1, 13, 130, 204, 8
LTEXT " Wincode and the Help file", -1,13,138,204,8
LTEXT " 3)E-mail (only) technical support", -1,13,146,204,8
LTEXT "All files will be ELECTRONICALLY MAILED to you.
If you",
-1, 13, 162, 204, 8 LTEXT "wish to have something sent through the US Postal service,",
-1, 13, 170, 204, 8 LTEXT "please include a Self-Addressed-STAMPED Disk Mailer AND",
-1, 13, 178, 204, 8 LTEXT "Disk with your order. Multi-User pricing is available.",
-1, 13, 186, 204, 8 LTEXT " Main Internet Address: cmcinter@suba.com",
-1, 13, 203, 204, 8 LTEXT " America Online: cmcinter@aol.com",
-1, 13, 214, 204, 8 CONTROL "", -1, "STATIC", SSJ3LACKFRAME | WS_CHILD |
WS_VISIBLE, 6, 6, 216, 228 ICON "MAIN_ICON", -1, 25, 27, 18, 20, SS_ICON | WS_GR0UP ICON "ORDER TELP_ICON", -1,187,27,18,20, SS_ICON | WS_GROUP CTEXT "PLEASE" include a LEGIBLE E-MAIL address with all orders. " ,
-1, 13, 98, 204, 8 CONTROL "", -1, "STATIC", SS_BLACKFRAME I WS_CHILD
WS_VISIBLE, 16, 158, 198, 1 CONTROL " " , -1 , "STATIC" , SS_BLACKFRAME WS CHILD
WS_VISIBLE, 16, 93, 198, 1 CONTROL "", -1, "STATIC", SS_BLACKFRAME WS CHILD
WS VISIBLE, 16, 109, 198, 1
SEQUENCE DIALOG LOADONCALL MOVEABLE DISCARDABLE 27,37,237,147
STYLE DS_MODALFRAME | WS_POPUP WS CAPTION WS SYSMENU CAPTION "Concatenate Files" FONT 8, "MS Sans Serif" EDITTEXT 750, 6, 16, 168, 12 DEFPUSHBUTTON "OK", 1, 183, 9, 45, 13 PUSHBUTTON "-> ScEncode", 756, 183, 67, 45, 13 PUSHBUTTON "-> ScDecode", 757, 183, 85, 45, 13 LISTBOX 751, 6, 44, 64, 82, LBS_STANDARD S TABSTOP PUSHBUTTON "->", 752, 77, 65, 18, 13 PUSHBUTTON "<-", 753, 77, 88 18, 13 LISTBOX 754, 111, 44, 64, 82 LBS_STANDARD WS TABSTOP
PUSHBUTTON "Cancel' , 2, 183, 27, 45, 13 PUSHBUTTON " ScHelp" , 755, 183 45, 45, 13 LTEXT "Concatenate all files into: " , -1, 6, 6, 87, 8 LTEXT "Files:", -1, 6, 33, 63, 8 LTEXT "Sequence:", -1, 111, 33 63, 8 CTEXT "1", -1, 99, 45, 10, 8 CTEXT "2", -1, 99, 53, 10, 8 CTEXT "3", -1, 99, 61, 10, 8 CTEXT "4", -1, 99, 69, 10, 8 CTEXT "5", -1, 99, 77, 10, 8 CTEXT "6", -1, 99, 85, 10, 8 CTEXT "7", -1, 99, 93, 10, 8 CTEXT "8", -1, 99, 101, 10, 8 CTEXT "9", -1, 99, 109, 10, 8 RTEXT "...", -1, 99, 117, 10, 8 LTEXT "Status:", -1, 6, 132, 27, LTEXT "", 758, 36, 132, 195, 8 PUSHBUTTON ">>", 759, 77, 45, 18, 13 PUSHBUTTON "<<", 760, 77, 109, 18, 13 LTEXT "Count:", -1, 183, 118, 24, 8 LTEXT "", 761, 210, 118, 21, 8 LTEXT "File", -1, 183, 109, 48, 8
WIN_CONFIG DIALOG LOADONCALL MOVEABLE DISCARDABLE
25, 21, 267, 186 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "CMCCODE Options" FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 1, 213, 9, 45, 13
CHECKBOX "CScreate Report File", 401, 12, 78, 12,
BS_AUTOCHECKBOX | WSJTABSTOP CHECKBOX "St&art as Icon", 402, 12, 23, 78, 12
BS_AUTOCHECKBOX | WSJTABSTOP CHECKBOX "Auto File Sc Overwrite", 403 12, 37, 78, 12,
BS_AUTOCHECKBOX | WSJTABSTOP CHECKBOX "ASclways On Top", 405, 93, 9 75, 12,
BS_AUTOCHECKBOX | WSJTABSTOP CHECKBOX "Close When DoScne", 406, 93, 23, 75, 12,
BS-AUTOCHECKBOX | WSJTABSTOP CHECKBOX "ScMemory Swapping", 407, 93, 37, 75, 12 CHECKBOX "WScinsort First", 408, 93, 51, 75, 12,
BS_AUTOCHECKBOX | WSJTABSTOP COMBOBOX 409, 117, 72, 54, 39, CBSJDROPDOWNLIST |
WSJVSCROLL I WSJTABSTOP COMBOBOX 410, 117, 87, 54, 39, CBSJDROPDOWNLIST |
WS_VSCROLL I WSJTABSTOP EDITTEXT 411, 12, 114, 141, 9, ES_AUTOHSCROLL |
NOT WS_BORDER | WSJTABSTOP PUSHBUTTON "?", 412, 156, 110, 12, 13 EDITTEXT 413, 15, 156, 148, 21, ES_MULTILINE |
WS_BORDER I WSJVSCROLL | WSJTABSTOP RADIOBUTTON "ScWincode Default", 414, 183, 94, 69, 12,
BS_AUTORADIOBUTTON | WS_GROUP | WSJTABSTOP RADIOBUTTON "ScCustom:", 415, 183, 109, 39, 12,
BS_AUTORADIOBUTTON | WSJTABSTOP EDITTEXT 416, 224, 109, 30, 12 RADIOBUTTON " cStandard (Default)", 417, 183, 146, 75, 12,
BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP RADIOBUTTON "CusSctom:", 418, 183, 163, 39, 12,
BS_AUTORADIOBUTTON | WS_TABSTOP EDITTEXT 419, 224, 163, 30, 12 CHECKBOX "DOS AttriScbutes " , 404, 12, 51, 78, 12,
BS_AUTOCHECKBOX | WSJTABSTOP PUSHBUTTON "Cancel", 2, 213, 27, 45, 13 PUSHBUTTON "ScDefaults", 420, 213, 45, 45, 13
PUSHBUTTON "ScHelp", 421, 213, 63, 45, 13
GROUPBOX "Working Directory", 103, 6, 102, 165, 24,
BS_GROUPBOX LTEXT "Enter sixty-four valid ASCII characters.",
-1, 15, 145, 132, 9 CONTROL "", -1, "STATIC", SS_BLACKFRAME | WS_CHILD
I WS_VISIBLE, 6, 6, 165, 60 GROUPBOX "Mode", 101, 177, 81, 84, 45, BS_GROUPBOX GROUPBOX "Line Length", 102, 177, 130, 84, 51, BS_GROUPBOX GROUPBOX "Code Table", -1, 6, 130, 165, 51, BS_GROUPBOX LTEXT "Interactive Mode Setting:", -1, 6, 90, 90, 8 LTEXT "Sound Effects Setting:", -1, 6, 76, 81, 8
}
WNS_CONFIG DIALOG LOADONCALL MOVEABLE DISCARDABLE
22, 38, 255, 159
STYLE DSJvlODALFRAME | WS_POPUP WS CAPTION WS SYSMENU CAPTION "Winsort Options" FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 1, 201, 9, 45, 13
EDITTEXT 501, 42, 19, 126, 12, ES_AUTOHSCROLL
WSJ30RDER I WSJTABSTOP EDITTEXT 502, 42, 35, 126, 12, ES AUTOHSCROLL
WS_BORDER I WSJTABSTOP CHECKBOX "ScUse Custom BEGIN/END", 503, 12, 54, 123, 12,
BS_AUTOCHECKBOX | WSJTABSTOP EDITTEXT 504, 12, 93, 117, 9, ES_AUTOHSCROLL |
NOT WS_BORDER | WSJTABSTOP PUSHBUTTON "?", 505, 132, 89, 12, 13 EDITTEXT 506, 12, 121, 117, 9, ES_AUTOHSCROLL |
NOT WS_BORDER | WSJTABSTOP PUSHBUTTON "?", 507, 132, 117, 12, 13 CHECKBOX "Execute Winsort in Silent Sc Mode",
508, 9, 140, 138, 12, BS_AUTOCHECKBOX | WSJTABSTOP RADIOBUTTON "ScStandard Winsort", 509, 159, 95,
75, 12, BS_AUTORADIOBUTTON | WS_GROUP | WSJTABSTOP RADIOBUTTON "Flush ScLeft ONLY", 510, 159, 110,
75, 12, BS_AUTORADIOBUTTON | WSJTABSTOP
RADIOBUTTON "Flush Left and Sort" , 511, 159, 125, 75, 12, BS_AUTORADIOBUTTON | WS TABSTOP EDITTEXT 512, 216, 139, 24, 12 PUSHBUTTON "Cancel", 2, 201, 27, 45, 13 PUSHBUTTON "ScDefaults", 513, 201, 45, 45, 13 PUSHBUTTON "ScHelp", 514, 201, 63, 45, 13 LTEXT "END:", -1, 12, 38, 24, 8 LTEXT "BEGIN:", -1, 12, 22, 27, 8 GROUPBOX "Sort Options", 101, 153, 81, 96, 72, BS_GROUPBOX GROUPBOX "Custom BEGIN/END", -1, 6, 6, 168, 66, BSJ3ROUPBOX GROUPBOX "Winsort Executable", 102, 6, 81, 141, 24, BS_GROUPBOX GROUPBOX "Winsort Directory", 103, 6, 109, 141, 24, BS GROUPBOX LTEXT "Flush # Chars:", -1, 159, 141, 54, 8
}
Z UZ CONFIG DIALOG LOADONCALL MOVEABLE DISCARDABLE 27, 24, 240, 151 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "ZIP/UNZIP Options" FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", 1, 186, 9, 45, 13
EDITTEXT 601, 69, 6, 90, 12, ES_AUTOHSCROLL | WS_BORDER
I WSJTABSTOP PUSHBUTTON "?", 602, 162, 5, 12, 13 EDITTEXT 603, 69, 23, 105, 12, ES_AUTOHSCROLL | WS_BORDER
I WSJTABSTOP EDITTEXT 604, 69, 39, 90, 12, ES_AUTOHSCROLL | WS_BORDER
I WS_TABSTOP
PUSHBUTTON "?", 605, 162, 38, 12, 13
EDITTEXT 606, 69, 55, 105, 12, ES_AUTOHSCROLL WS_BORDER
I WSJTABSTOP EDITTEXT 607, 102, 71, 33, 12 RADIOBUTTON "DefScault to location of input file", 608, 12,
100, 132, 12, BS_AUTORADIOBUTTON | WS_GROUP | WSJTABSTOP RADIOBUTTON "User select Scon UNZIP", 609, 12,
114, 132, 12, BS_AUTORADIOBUTTON | WSJTABSTOP RADIOBUTTON "ScSet:", 610, 12, 128, 27, 12,
BS_AUTORADIOBUTTON | WS_TABSTOP EDITTEXT 611, 42, 128, 99, 12, ES_AUTOHSCROLL |
WS_BORDER I WS_TABSTOP PUSHBUTTON "?", 612, 144, 128, 12, 13 RADIOBUTTON "ScNormal", 613, 171, 100, 57, 12,
BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP RADIOBUTTON "ScMinimized" , 614, 171, 114, 57, 12,
BS_AUTORADIOBUTTON | WS_TABSTOP RADIOBUTTON "HiddScen" , 615, 171, 128, 57, 12,
BS_AUTORADIOBUTTON | WS_TABSTOP PUSHBUTTON "Cancel", 2, 186, 27, 45, 13 PUSHBUTTON "ScDefaults", 616, 186, 45, 45, 13 PUSHBUTTON "ScHelp", 617, 186, 63, 45, 13 GROUPBOX "UNZIPped File(s) Directory", 101, 6, 87, 153, 57,
BS_GROUPBOX
GROUPBOX "Show Options", 102, 165, 87, 69, 57, BS GROUPBOX LTEXT "ZIP Filename:", -1, 6, 10, 57, 8 LTEXT "ZIP Param(s):", -1, 6, 26, 57, 8 LTEXT "UNZIP Filename:", -1, 6, 42, 60, 8 LTEXT "UNZIP Param(s):", -1, 6, 58, 60, 8
LTEXT "Extension for ZIPped Files:", -1, 6, 74, 93, 8
ZIP_NAME DIALOG LOADONCALL MOVEABLE DISCARDABLE 35, 31, 132, 60 STYLE DSJvlODALFRAME | WS_POPUP | WS_CAP ION | WS_SYSMENU CAPTION "CMCCODE - ZIP Filename" FONT 8, "MS Sans Serif"
EDITTEXT 101, 31, 23, 51, 12, ES_AUTOHSCROLL | WS_BORDER
I WSJTABSTOP DEFPUSHBUTTON "OK", 1, 12, 42, 45, 13 PUSHBUTTON "Cancel", 2, 75, 42, 45, 13 CTEXT "Enter a filename for the ZIP archive:", -1, 4, 7, 123, 9 LTEXT "", 102, 84, 25, 24, 8
}
STRINGTABLE LOADONCALL MOVEABLE DISCARDABLE
{
101, "Encode a data file..."
102, "Decode a data file..."
103, "Concatenate multiple files into a single file (specific ordering) ..."
104, "View a Wincode Report file..."
105, "Clean Wincode directories by deleting files..."
106, "Set Encode options..."
107, "Set Decode options..."
108, "Set General Wincode options..."
109, "Set Winsort options..."
110, "Select a Report File viewer..."
111, "Set PKZIP/UNZIP options..."
}
STRINGTABLE LOADONCALL MOVEABLE DISCARDABLE
{
112, "Set the Application Hook options..."
113, "Wincode Help Contents..."
114, "Help file Keyword Search..."
115, "Help on using Windows Help files..."
116, "Wincode Internet Frequency Asked Questions..."
117, "Legal Copyrights for files..."
118, "Information on ordering the Wincode Help file..."
119, "Version and Author information..."
121, "Set Wincode Interactive Drag Sc Drop Mode..."
122, "Hook the Wincode Menu into a selected application.
123, "Select the Options Toolbar to configure Wincode...
124, "Exit the Wincode program..."
125, "Stop the current Operation..."
126, "Quit the entire Operation..."
127, "Encode, Decode, Exit..."
}
STRINGTABLE LOADONCALL MOVEABLE DISCARDABLE
{
128, "Concat, View, Clean, DragScDrop Mode, Hook..."
129, "Encode, Decode, Wincodt, Winsort, Viewer, PKZIP/UNZIP, Hook App ... "
130, "Help and related information..."
CLEAN DOWN ICON LOADONCALL MOVEABLE DISCARDABLE
COPYRIGHT - 1996 PLANET GRAPHICS, INC. The following is a second software listing for the catcher program of the invention.
//
//
//
// File: NPSHELL.CPP
//
//
// Advanced Features:
// + Secured trigger/key-access processes
// + Uncrippling Media files
//
// Copyright © 1996-1997 HyperLOCK Technologies, Inc.
// All Rights Reserved.
//
//
//
// HyperCD
//
// The architecture of HyperCD allows for
// authorized and secure rendering of crippled multimedia files
// from the fastest link. Such media may reside on a HyperCD
// CD-ROM/DVD-ROM, a server through regular phone line,
// broad-band fiber optics or satelite for speedy access.
// The HyperCD media files are protected by crippling the
// media. Only server authorized user can obtain
// trigger/keys/missing pieces from the server to unlock the
// HyperCD media.
//
// See Patent Application for details.
//
//
#ifndef_WIN32 #define WTN32 #endif
#ifndef_NPAPI_H_ ^include "npapi.h" #include "plgwnd.h" include "CHyperCD.h" #endif
#include <mmsystem.h> #include <qtw.h> #include <time.h> #include <string.h> #include <io.h> #include <fcntl.h> #include <sys/stat.h>
//
// NPP Jnitialize:
//
NPError NPP Jnitialize( void)
{
DEBUG_TEST("NPP Jnitialize") return NPERR_NO_ERROR;
}
//
// NPP_Shutdown:
// void NPP_Shutdown(void)
{
DEBUG_TEST("NPP_Shutdown") return;
}
//
// NPP_New:
//
NPError NP_LOADDS NPP_New(NPMIMEType pluginType,
NPP instance, uintlό mode, intlό argc, char* argn[], char* argv[],
NPSavedData* saved)
{
DEBUG_TEST("NPP_New")
if (instance = NULL) return NPERR JNVALΓD NSTANCE_ERROR;
instance->pdata = NPN_MemAlloc(sizeof(PluginInstance)); Pluginlnstance* This = (Pluginlnstance*) instance->pdata; if (This != NULL)
{ This->window = NULL; This->cHypercd = new CHyperCD();
This->mode = mode;
This->bAutoStart = FALSE; This->bLoop = FALSE; strcpy( This->InformationField,,ΗyρerCD");
int idx;
STRING sSYSFILE;
strcpy(sSYSFILE,SYSFILE); char *pl,*p2;
STRING szArg, sz Value, cd itle; for ( idx =0; idx<argc; idx++) ( strcpy(szArg, argnfidx]); strcpy(szValue, argv[idx]);
// Check web tags and set HyperCD flags SetHyperCDFlags(szArg, szValue); if DemandHyperCD) goto parsing embed Jags;
for ( idx =0; idx<argc; idx++) ( strcpy(szArg, argnfidx]); strcpy(szValue, argv[idx]);
ParseHyperCDTags 1 (szArg,sz Value); } if( ! bDemandHyperCD)
SysIO(sSYSFELE);
for (idx =0; idx<argc; idx++)
{ strcpy(szArg, argn[idx]); strcpy(szValue, argvfidx]);
ParseHyperCDTags2(szArg, sz Value);
} parsing embed ags: instance->pdata = This; return NPERR_NO_ERROR; } else return NPERR_OUT_OF_MEMORY_ERROR;
}
static void UnSubclass(PluginInstance *This)
{ WNDPROC OldWndProc;
WNDPROC* lplpf = This->window->GetSuperWndProcAddr(); DEBUG_TEST("UnSubclass")
if ( !*lplpfh )
{ ASSERT(O); return; }
// Set the original window procedure
OldWndProc = (WNDPROC): : SetWindowLong( This->window->m_hWnd, GWL NDPROC, (LONG) *lplpfh );
// A subclassed window's procedure is always AfxWndProc. // If this is not TRUE, then it's not a subclassed window, if ( OldWndProc != AfxWndProc ) ASSERT(O);
} static void KillHyperCDWindow(PluginInstance *This) {
DEBUG_TEST("KillHyperCDWindow")
if (This->cHypercd) { This->cHypercd->Close(); delete This->cHypercd; This->cHypercd = NULL; }
CleanUpHyperCDO; UnSubclass(This); if (This->window) { This->window->Detach(); delete This->window; This->window = NULL;
//
// NPP JDestroy:
//
NPError NP_LOADDS
NPP_Destroy(NPP instance, NPSavedData** save)
{ if (instance = NULL) return NPERR NVALID INSTANCE ERROR;
Pluginlnstance* This = (Pluginlnstance*) instance->pdata;
// // Note: If desired, call NP MemAlloc to create a // NPSavedData structure containing any state information // that you want restored if this plugin instance is later // recreated. //
if (This != NULL)
{
KillHyperCDWindow(This); NPN_MemFree(instance->pdata); } return NPERR_NO_ERROR;
}
//
// NPP_SetWindow:
//
NPError NPJ OADDS
NPP_SetWindow(NPP instance, NPWindow* np window)
{ DEBUG_TEST("NPP_SetWindow")
if (instance — NULL) return NPERR_ΓNVALΓD_ΓNSTANCE_ERROR;
Pluginlnstance* This = (Pluginlnstance*) instance->pdata;
//
// Note: Before setting fWindow to point to the
// new window, you may wish to compare the new window
// info to the previous window (if any) to note window
// size changes, etc.
// if(!np_window) return NPERR_GENERIC_ERROR; if (! instance) return NPERR NVALrDJNSTANCE_ERROR;
if(!This) return NPERR_GENERIC_ERROR; if (!np_window->window && !This->window) // spurious entry return NPERR_NO_ERROR; if (!np_window->window && This->window) { // window went away
KillHyperCDWindow(This); return NPERR_NO_ERROR;
} if (!This->window && np_window->window)
{ // First time in ~ no window created by plugin yet
This->window = (CPluginWindow *) new CPluginWindow(); if ( ! This->window->SubclassWindow((HWND)np_window->window))
{ MessageBox(NULL,"SubclassWindow Failed","HyperCD",MB_OK); return NPERR_GENERIC_ERROR;
}
// Save This pointer in window class member variable.. this lets the
// window message handling have access to the data pointer easily
This->window->StoreData(This); }
// resize or moved window (or newly created) This->window->InvalidateRect(NULL); This->window->UpdateWindow(); return NPERR_NO_ERROR;
//
// NPP_NewStream:
//
NPError NP_LOADDS
NPP_NewStream(NPP instance,
NPMLMEType type, NPStream * stream, NPBool seekable, uintlό *stype)
{
DEBUG_TEST("NPP_NewStream")
if (instance = NULL) return NPERR NVALID NSTANCE_ERROR; Pluginlnstance* This = (Pluginlnstance*) instance->pdata;
*stype = NP_ASFILE; return NPERR NO ERROR;
int32 STREAMBUFSIZE = OXOFFFFFFF; // If we are reading from a file in NPAsFile
// mode so we can take any size stream in our
// write call (since we ignore it)
//
// NPP VriteReady:
//. int32 JLOADDS
NPP_WriteReady(NPP instance, NPStream * stream) {
DEBUG_TEST("NPP_WriteReady") if (instance != NULL)
{ Pluginlnstance* This = (Pluginlnstance*) instance->pdata;
} return STREAMBUFSIZE; // Number of bytes ready to accept in
NPP_Write()
}
//
// NPP JVrite:
// int32 NP LOADDS
NPP_Write(NPP instance, NPStream *stream, int32 offset, int32 len, void *buffer)
{
DEBUG_TEST("NPP_Write")
if (instance != NULL)
{ Pluginlnstance* This = (Pluginlnstance*) instance->pdata;
} return len; // The number of bytes accepted
}
//
// NPP_DestroyStream:
//
NPError NP_LOADDS
NPP_DestroyStream(NPP instance, NPStream * stream, NPError reason)
{
DEBUG_TEST("NPP_DestroyStream") if (instance = NULL) return NPERR NVALID NSTANCE_ERROR; Pluginlnstance* This = (Pluginlnstance*) instance->pdata; return NPERR_NO_ERROR;
}
//
//
// HCD_To_Server
//
// This module is called by various components of HyperCD client software
// to initiate communications with server(s).
// Objects will be exchanged during such process.
//
//
HCDError HCD_To_Server(HCDOBJECTTYPE InObject, HCDOBJECTTYPE OutObject, HCDCOMMTYPE CommType )
{
HCDError HCDReturnErr=HCDOK;
// retrieve objects from server and assigned to OutObject // this client is identified by InObject // NPN_ methods can be used. if(CommType == HCD_GET)
HCDReturnErr=HCD_GetURL(InObject,OutObject);
// Send info to server else if (CommType = HCD POST)
HCDRetumErr=HCD_PostURL(InObject,OutObject); else
HCDReturnErr=HCD_DefaultComm(InObject,OutObject); return HCDReturnErr;
}
//
// ObtainKey:
//
HCDError ObtainKey(KeyObject *Object, char *pszTrigger)
{
TriggerObject Trigger;
//;
// // Decrypt/decode trigger to obtain info on
// server id, communication keys,
// time-stamp, etc that make the communication
// secure and unique so that intercepted
// keys will not work on PIRATED SERVER
// but fees/usage info can still be charged/monitored
// on PIRATED HyperCD's.
//
II ήt********************************************************
***
Trigger = DecryptTrigger(pszTrigger); if(IsValidTrigger(TestTrigger)) return HCDERROR UNAUTHORIZED ACCESS;
//
// Directly communicate with the server
// to obtain CRITICAL DATA - the server approved missing
// pieces.
//
// The CRITICAL DATA includes, but not limited to,
// the HEADER, jumptable, parts of the data.
// The HEADER here includes organization
// information which specifies where the sub data chunks are,
// what leading keywords are, what encryption is
// performed on sub data chunks, and what access level
// numbers are derived from a formula used to characterize
// a set of data.
//
// This component is also called the Catcher that
// captures the CRITICAL DATA.
//
//
***
NewObject = new KeyObject;
// Initiate a process to retrieve the missing uncrippling // pieces to merge with the crippled media file on
// HyperCD/HyperCD media server/any other convenient // locations where speedy delivery is possible.
RetrieveKeys(Trigger, NewObject);
if(IsValidKeyObject(NewObject)) return HCDERRORJJNAUTHORIZED ACCESS; return HCDOK;
}
//
// NPP_StreamAsFile:
// void NP LOADDS
NPP_StreamAsFile(NPP instance, NPStream * stream, const char* pszTrigger)
{ if (instance = NULL) return; Pluginlnstance* This = (Pluginlnstance*) instance->pdata; if ( ! This->cHypercd) return;
c 4c *
//
// Direct Access to obtain missing map/object/keys
//
// This component decrypts the incoming trigger
// and then perform Secured Access by directly
// communicates with the server to obtain
// the missing critical information
// The crippled file is then being uncrippled
// and then sent to media display component
// for rendering.
//
// The incoming keys may be from several servers.
//
// The incoming keys may be of type:
// * HyperCD Triggers indicating embedded HyperCD Objects
// * Server Keys facilitating secure communication
// * Server Keys dictating what objects to expect and
// what opeartions to perform on them
// * Server Keys that's uniquely protected/encrypted // to deliver missing uncrippling
// parts/objects
//
ObtainKey(pszTrigger, Key, KeyType); if(KeyType = HyperCDKey EmbedTrigger)
{
PrepareEmbedHyperCD(Key) ; return;
}
//
// After the server receives a POST request from
// end-user client software - asking the
// permission to access HyperCD media on end-user
// computer, the server checks for
// registration/access permission info on the user
// and then setup a Secure Communication channel
// with the end-user client software
//
else if (KeyType = HyperCDKey SecureComm)
{
// Save server-ID, time-stamp, password info
SetupSecureComm(Key); return;
} else if (KeyType — HyperCDKey ActionPlan)
{
// Save info on objects/operations/jump table/etc
SetupActionPlan(Key); return;
} else if (KeyType — HyperCDKey Objects)
{
// Receive objects
Recei veObj ect s(Key , Obj ect) ; //
// Media Display Component
//
// This component uncripples the crippled files from
// HyperCD and display them. The uncrippling is achieved
// by decrypting/remapping/reorganization of the parts from
// remote server and HyperCD, which could reside on a DVD
// a server, or any media type.
//
4c He He
// Check if the intended file is of HCD_MEDIA if( ObjectType(Object) = HCD MEDIA) // mov, jpeg, avi, and other encrypted media type
{
// Uncrippling media files from HyperCD and render the files
DisplayObject(Object );
} else // anything else is not valid
{ HyperCDError(rNVALID_MEDIA_TYPE); return;
} return;
} else // for keys of other types, perform default processing
{
PerformDefaultProcessingO; return;
} return;
//.
// NPP Print:
//. void NP LOADDS NPP_Print(NPP instance, NPPrint* printlnfo)
{
DEBUG_TEST("NPP_Print") if(printInfo — NULL) // trap invalid parm return; if (instance != NULL)
{ Pluginlnstance* This = (Pluginlnstance*) instance->pdata; if (printInfo->mode = NP_FULL)
{ //
// Note: If your plugin would like to take over // printing completely when it is in full-screen mode, // set printInfo->pluginPrinted to TRUE and print your // plugin as you see fit. If your plugin wants Netscape // to handle printing in this case, set printInfo->pluginPrinted // to FALSE (the default) and do nothing. If you do want // to handle printing yourself, printOne is true if the // print button (as opposed to the print menu) was clicked. // On the Macintosh, platformPrint is a THPrint; on Windows, // platformPrint is a structure (defined in npapi.h) containing // the printer name, port, etc. // void* platformPrint = printInfo->print. fullPrint. platformPrint; NPBool printOne = printInfo->print.fullPrint.printOne; printInfo->print. fullPrint. pluginPrinted = FALSE; // Do the default
} else // If not fullscreen, we must be embedded
{
//
// Note: If your plugin is embedded, or is f ill-screen
// but you returned false in pluginPrinted above, NPP Print
// will be called with mode = NPJBMBED. The NPWindow
// in the printlnfo gives the location and dimensions of
// the embedded plugin on the printed page. On the Macintosh,
// platformPrint is the printer port; on Windows, platformPrint
// is the handle to the printing device context.
//
NPWindow* printWindow = &(printInfo->print.embedPrint.window); void* platformPrint = printInfo->print.embedPrint.platformPrint; //
// NPP_HandleEvent:
// Mac-only.
// intlό NPP_HandleEvent(NPP instance, void* event)
{ NPBool eventHandled = FALSE; if (instance = NULL) return eventHandled;
Pluginlnstance* This = (Pluginlnstance*) instance->pdata;
//
// Note: The "event" passed in is a Macintosh // EventRecord*. The event, what field can be any of the // normal Mac event types, or one of the following additional // types defined in npapi.h: getFocusEvent, loseFocusEvent, // adjustCursorEvent. The focus events inform your plugin // that it will become, or is no longer, the recepient of // key events. If your plugin doesn't want to receive key // events, return false when passed at getFocusEvent. The // adjustCursorEvent is passed repeatedly when the mouse is // over your plugin; if your plugin doesn't want to set the // cursor, return false. Handle the standard Mac events as // normal. The return value for all standard events is currently // ignored except for the key event: for key events, only return // true if your plugin has handled that particular key event. // return eventHandled;
} //
// HyperCD I/O
//
// Function:
// Remap-decrypt-decode and merge the
// missing CRITICAL DATA with the CRIPPLED
// HyperCD files.
//
//>)< *********************************************************** *
#include <windows.h> #include <mmsystem.h> #include <digitalv.h> #include <time.h> #include <sys/types.h> ^include <sys/stat.h> ^include <stdio.h> #include <string.h>
InsertHyperCDIOModuleO;
RemoveHyperCDIOModuleO;
OPEN_HYPERCD();
HDVDCALLBACK HYPERCDIO(LPHYPERCDINFO)
{ switch (uMessage) { case MMIOM OPEN:
HYPERCD_Open(); return 0; case MMIOM_CLOSE:
HYPERCD_Close(); return 0; case MMIOM READ:
HYPERCD_ReadMultipleFiles(); return (LPHYPERCDINFO.displacement), case MMIOM_SEEK: switch (lParam2) { case SEEK SET: // seek to the absolute position relative to original beginning
HYPERCD_SeekSet(); break; / *
File: cHyperCD.cpp
Advanced Features :
This file implements a CHyperCD class which can be used to display HyperCD movie files. This file contains some basic code from the Netscape plugin sdk.
#include "stdafx.h" #include "CHyperCD.h" #include <mmsystem.h>
#ifdef WIN32
#include <digitalv.h> endif ttifdef _DEBUG
#undef THIS_FILE static char BASED_CODE THIS_FILE [ ] = _FILE_; endif
The constructor
HyperCD: : CHyperCD ( ) mOpen = FALSE; mPlaying = FALSE; mDevicelD = 0; mErrorCode = 0 ; mMCIErrorCode = OL; }
CHyperCd: :~CHYperCD ( )
/*,
This function opens the HyperCD movie file for playback and display the first frame. It requires the HyperCD movie file name and a pointer to the window to draw into */
BOOL CHyperCD: :Open (CWnd *pWnd, CString Filename, CString Type)
DWORD RetCode;
MCI_ANIM_OPEN_PARMS OpenParms ;
MCI_ANIM_WINDOW_PARMS WindowParms ;
// Close any device that is already open. if (mDevicelD) { Close ( ) ; }
// Open a device for playback.
OpenParams.dwCallback = NULL;
OpenParams .wDevicelD = 0
OpenParams . IpstrDeviceType = Type;
OpenParams. IpstrAlias = "hyperCD";// can use an array of aliases OpenParams. dwStyle = WS_CHILD | WS_VISIBLE; OpenParams . hWndParent = pWnd->m_hWnd; DWORD flags= (DWORD) MCI_OPEN_ELEMENT | MCI_ANIM_OPEN_PARENT | MCI_ANIM_OPEN_WS ; if (Type =="AVIVideo" | | Type=="QTWVideo" | | Type=="MPEGVideo" ) flags |= MCI_OPEN_TYPE; if (RetCode - mciSendCommand (0,MCI_OPEN, flags, (DWORD) (LPVOID) &OpenParms) ) { mMCIErrorCode = RetCode; char szBuf [256] mciGetErrorString (Ret Code . szBuf, 256) ; char msg [200] ; strcpy(msg, "Error Opening : "); strcat(msg.
Filename) :
MessageBox (NULL . szBuf .msg .MB_OK) ; return FALSE;
}
// The device was opened, get the device ID. mDevicelD = OpenParms .wDeviceID;
WindowParms .dwCallback = NULL;
WindowParms . hWnd = pWnd->m_hWnd;
WindowParms . nCmdShow = SWJ3HOW;
WindowParms. IpstrText = (LPSTR) NULL; if (RetCode = mciSendCommand (mDevicelD, MCI_WINDOW,
MCI_ANIM_WINDOW-HWND, (DWORD) (LPVOID) & WindowParms)) { mMCIErrorCode = RetCode; return FALSE;
} mMovieWnd = WindowParms .hWnd; mOpen = TRUE return TRUE;
*
Stop any HyperCD movie, close any open device IDs. * void CHyperCD: : Close (void)
{
// Closing a device ID will stop the video playback. if (mDevicelD) mciSendCommand (mDevicelD, MCI_CLOSE, OL, NULL) : mOpen = FALSE mPlaying = FALSE; } void CHyperCD: :Update ( )
{
MCI_ANIM_UPDATE_PARMS UpdateParams;
UpdateParams .dwCallback = NULL
UpdateParams.hDC = : :GetDC (mMovieWnd) ; if (mDevice ID) mciSendCommand (mDevicelD, MCI PDATE,
MCI_ANIM_UPDATE_HDC, (DWORD) (LPVOID) &UpdateParams) ;
: :ReleaseDC (mMovieWnd,UpdateParams .hDC) ; mOpen = FALSE; mPlaying = FALSE;
Start the video playback.
This function immediately returns control back to the program.
* /
BOOL CHyperCD :: Start (BOOL bLoop)
DWORD RetCode, dwFlags = OL; MCI_ANIM_PLAY_PARMS PlayParms;
//Start playback using the MCI_PLAY command. PlayParms.dwCallback = NULL; PlayParms . dwFrom = PlayParms .dwTo = 0;
#ifdep WIN32 if (bLoop) dwFlags = MCI_DGV_PLA_REPEAT; #endif if (RetCode = mciSendCommand (mDevicelD, MCI_PLAY, dwFlags, (DWORD) (LPVOID) &PlayParms) ) { mMCIErrorCode = RetCode; char szBuf [256] ; mciGetErrorString (RetCode, szBuf, 256) ; mciSendCommand (mDevicelD, MCI_CL0SE, OL, NULL) ; mOpen = FALSE; mPlaying = TRUE; return TRUE;
BOOL CHyperCD: :Realize (void)
//plugins must realize their palette as a background palette DWORD RetCode = mciSendCommand (mDevicelD, MCI_REALIZE,
MCI_ANIM_REALIZE_BKGD, NULL) ; return RetCode; Pause a video, different from close
BOOL CHyperCD :: Stop (void)
{
DWORD RetCode;
// Stop playback by sending the MCI_PAUSE command, if (RetCode = mciSend Command (mDevicelD, MCI_PAUSE, OL, NULL) ) { mMCIErrorCode = RetCode; mciSendCommand (mDevicelD, MCI_CLOSE, OL, NULL) ) { mOpen = FALSE; return FALSE;
} mPlaying = FALSE; return TRUE;
/ }*
Rewind the video to the beginning and display the first fram.
BOOL CHyperCD ::Rewind (void)
DWORD RetCode;
// If the video is playing you must stop it first, if (mPlaying) if (I Stop ( )) return FALSE;
// Use the MCI_SEEK command to return to the beginning of the file. if (RetCode = mciSendCommand (mDevicelD, MCIjSEEK, MCI_SEEK_TO_START, (DWORD) (LPVOID) (NULL) ) { mMCIErrorCode = RetCode; mciSendCommand (mDevicelD, MCI_CLOSE, OL, NULL) ; mOpen = FALSE; return = FALSE;
} return TRUE;
}
/*
Forward the video to the end and display the last frame.
*
BOOL CHyperCD ::Forward (void)
DWORD RetCode;
// If the video is playing you must stop it first if (mPlaying) if (IStop ( )) return FALSE;
// Use the MCI_SEEK command to go to the end of the file.
If (RetCode = mciSendCommand (mDevicelD, MCI_SEEK,
MCI_SEEK_TO_END, (DWORD) (LPVOID) NULL) ) { mMCIError Code = RetCode; mciSendCommand (mDevicelD, MCI_CLOSE, OL, NULL) ; mOpen = FALSE; return FALSE;
} return TRUE;
} /*
Forward the video by one frame .
BOOL CHyperCD: : FrameForward (void)
{
DWORD RetCode;
MCI_ANIM_STEP_PARMS StepParms; MCI_STATUS_PARMS StatusParms; DWORD Length, Position;
// if the video is playing you must stop it first, if (mPlaying) if (I Stop ( )) return FALSE;
// Determine the length in frames of the file.
StatusParms. dwltem = MCI_STATUS_LENGTH; if (RetCode = mciSendCommand (mDevicelD, MCI_STATUS,
MCI_STATUS_ITEM, (DWORD) (LPVOID) &StatusParms) ) mMCIErrorCode = RetCode; mciSendCommand (mDevicelD, MCI_CLOSE, OL, NULL) ; return FALSE;
} Length = StatusParms. dwReturn;
//Determine the current position of the file. StatusParms. dwltem = MCI_STATUS_POSITION; if (RetCode = mciSendCommand (mDevicelD, MCI_STATUS, MCI_STATUS_ITEM, (DWORD) (LPVOID) &StatusParms) mMCIErrorCode = RetCode; mciSendCommand (mDevicelD, MCI_CLOSE, OL, NULL) ; return FALSE;
} Position = StatusParms. dwReturn;
// If we're already at the end return, if (Length == Position) return TRUE;
// If not already at the end use MCI_STEP to move forward one frame . StepParms .dwFrames = IL; if (RetCode = mciSendCommand (mDevicelD, MCI_STEP,
MCI_ANIM_STEP_FRAMES, (DWORD) (LPVOID) &StepParms) ) mMCIErrorCode = RetCode; mciSendCommand (mDevicelD, MCI_CL0SE, OL, NULL) ; mOpen = FALSE; return FALSE:
} return TRUE;
}
Step back the video by one frame , BOOL CHyperCD :: FrameBack (void)
DWORD RetCode; MCI_ANIM_STEP_PARMS StepParms
// If the video is playing you must stop it first, if (mPlaying) if ('Stop ( )0 return FALSE;
// Use MCI_STEP to move back one frame.
StepParms . dwFrames = IL; if (RetCode = mciSendCommand (mDeviceld, MCI_STEP,
MCI_ANIM_STEP_REVERSE, (DWORD) (LPVOID) & StepParms) ) mMCIErrorCode = RetCode; mciSendCommand (mDevicelD, MCI_CLOSE, OL, NULL) ; mOpen = FALSE; return FALSE:
} return TRUE;
DWORD CHyperCD ::GetLength (void)
DWORD RetCode;
// Make sure a device is open, if (!mDevicelD) return 0;
MCI_STATUS_PARMS StatusParms;
//Determine the length in frames of the file. StatusParms.dwltem = MCI_STATUS_LENGTH; if (RetCode = mciSendCommand (mDeviceld, MCI-STATUS, MCI_STATUS-ITEM, (DWORD) (LPVOID) &StatusParms) ) mMCIErrorCode = RetCode; mciSendCommand (mDevicelD, MCI_CLOSE, OL, NULL) ; return FALSE;
} return (int) StatusParms . dwReturn; }
DWORD CHyperCD: :GetPosition (void)
{
DWORD RetCode;
// Make sure a device is open. if (ImDevicelD) return O;
MCI_STATUS_PARMS StatusParms;
// Determine the current position of the file. StatusParms. dwltem = MCI_STATUS_POSITION; if (RetCode = mciSendCommand (mDevicelD, MCI_STATUS, MCI_STATUS_ITEM, (DWORD) (LPVOID) &StatusParms) ) mMCIErrorCode = RetCode; mciSendCommand (mDevicelD, MCI_CLOSE, OL, NULL) ; return FALSE;
} return (int) StatusParms .dwReturn;
} int CHyperCD: :GetWidth (void)
//Make sure a device is open, if (ImDevicelD) return 0; MCI_ANIM_RECT_PARMS RectParms;
//Use MCI_WHERE to get the video window rectangle. mciSendCommand (mDevicelD, MCI_WHERE, (DWORD) MCI_ANIM_WHERE_SOURCE . (DWORD) (LPVOID) &RectParms) ; return (int) RectParms . re . right ; int CHyperCD: :GetHeight (void)
// Make sure a device is open, if (ImDevicelD) return O;
MCI_ANIM_RECT_PARMS RectParms;
// Use MCIJWHERE to get the video window rectangle. mciSendCommand (mDeviceld, MCI_WHERE, (DWORD) MCI_ANIM_WHERE_SOURCE, (DWORD) (LPVOID) &RectParms) ; return (int) RectParms. re.bottom;
CString CHyperCD: :GetError String (void) static const char "Strings [ ] = {
"Could not set the position for the video in the window. " .
}; char Error Buffer (MAXERRORLENGTH] ; // An error was generated from within the CHyperCD class, if (mErrorCode == 1) return (CString) Strings [0] ; // An error was generated from a MCI function call . else if (mciGetErrorString (mMCIErrorCode, (LPSTR) ErrorBuffer, MAXERRORLENGTH) ) return (CString) Error Buffer; // There is no error, else. return (CString) ("There is no error or the error is undefined. " )
/ }*
A private function that simply positions the video window in the center of the parent window. */
BOOL CHyperCD: : Center (void)
DWORD RetCode;
CRect BoundsRect, MovieRect, WindowRect;
MCI_ANIM_RECT_PARMS RectParms;
// Use MCIJWHERE to get the video window rectangle, if (RetCode = mciSendCommand (mDevicelD, MCI_WHERE, (DWORD)
MCI_ANIM_WHERE_SOURCE, (DWORD) (LPVOID) &RectParms) ) return FALSE;
// Determine the parameters for the playback window.
BoundsRect = RectParms . re;
MovieRect . left = 0;
MovieRect . top = 0;
MovieRect . right = MovieRect . left + BoundsRect . right ;
MovieRect .bottom = MovieRect . top + BoundsRect .bottom;
: :GetWindowRect (mMovieWnd. &WindowRect) ;
// Move the playback window.
MoveWindow (mMovieWnd, (WindowRect .Width ( ) -
MovieRect.Width ( ))/2,
(WindowRect .Height ( ) -
MovieRect . Height) ( ) ) /2
BoundsRect . right .
BoundsRect .bottom, TRUE) ; return TRUE; The following is the software code listing for the requesting, end-user's computer for the embodiment of Fig. 12
/*
//
// HyperKey
//
// The architecture of HyperKey allows for
// authorized and secure rendering of encrypted multimedia object
// from the protected web site. The encrypted HyperKey media object is protected
// by crippling the media. Only authorized user can obtain
// trigger/keys from the server to unlock the HyperKey media.
// */
#ifndef WIN32 #define JYIN32 #endif
#ifndef_NPAPI_H_ #include "npapi.h" #include "plgwnd.h" include "CHyperCD.h" #endif
^include <mmsystem.h> #include <qtw.h>
#include <time.h> ^include <string.h> #include <io.h> #include <fcntl.h> #include <sys/stat.h>
//
// NPPJnitialize:
//
NPError NPP Jnitialize( void)
{
DEBUG_TEST("NPP Jnitialize") return NPERR_NO_ERROR;
} //
// NPP_Shutdown:
// void NPP_Shutdown(void)
{
DEBUG_TEST("NPP_Shutdown") return;
}
//
// NPP_New:
//
NPError NP LOADDS NPP_New(NPMIMEType pluginType,
NPP instance, uintlό mode, int 16 argc, char* argn[], char* argv[],
NPSavedData* saved)
{
DEBUG_TEST("NPP_New") if (instance — NULL) return NPERR JNVALID JNSTANCE_ERROR;
instance->pdata = NPN_MemAlloc(sizeofi(PluginInstance)); Pluginlnstance* This = (Pluginlnstance*) instance->pdata; if (This != NULL)
{ This->window = NULL;
This->cHypercd = new CHyperCD();
This->mode = mode; for ( idx =0; idx<argc; idx++) { strcpy(szArg, argn[idx]); strcpy(szValue, argv[idx]);
// Check web tags and set HyperKey flags SetHyperKeyFlags(szArg, szValue); if(bDemandHyperKey) goto parsing embed ags; for ( idx =0; idx<argc; idx++) { strcpy(szArg, argn[idx]); strcpy(szValue, argvfidx]);
ParseHyperKeyTags 1 (szArg,sz Value); } if( ! bDemandHyperKey)
SysIO(sSYSFILE);
for (idx =0; idx<argc; idx++)
{ strcpy(szArg, argn[idx]); strcpy(szValue, argvfidx]);
ParseHyperKeyTags2(szArg,sz Value);
} parsing embed ags : instance->pdata = This; return NPERR_NO_ERROR;
} else return NPERR_OUT_OF_MEMORY_ERROR;
}
static void UnSubclass(PluginInstance *This)
{ WNDPROC OldWndProc;
WNDPROC* lplpfh = This->window->GetSuperWndProcAddr(); DEBUG_TEST("UnSubclass")
if( !*lplpfh )
{
ASSERT(O); return; }
// Set the original window procedure
OldWndProc = (WNDPROC): : SetWindowLong( This->window->m_hWnd,
GWL WNDPROC, (LONG) *lplpfn ); // A subclassed window's procedure is always AfxWndProc. // If this is not TRUE, then it's not a subclassed window, if ( OldWndProc != AfxWndProc ) ASSERT(O);
} static void KillHyperCDWindow(PluginInstance *This) {
DEBUG_TEST("KillHyperCDWindow")
if (This->cHyρercd) {
This->cHypercd->Close(); delete This->cHypercd; This->cHypercd = NULL;
}
CleanUpHyperKeyO; UnSubclass(This); if (This->window) { This->window->Detach(); delete This->window; This->window = NULL;
//
// NPPJDestroy:
//
NPError NPJ O ADDS
NPP_Destroy(NPP instance, NPSavedData** save)
{ if (instance = NULL) return NPERR NVALID NSTANCE_ERROR; Pluginlnstance* This = (Pluginlnstance*) instance->pdata;
// // Note: If desired, call NP_MemAlloc to create a // NPSavedData structure containing any state information // that you want restored if this plugin instance is later // recreated.
//
if (This != NULL)
{
KillHyperCDWindow(This);
NPN_MemFree(instance->pdata); } return NPERR_NO_ERROR;
}
//
// NPP_SetWindow:
//
NPError NP_LO ADDS
NPP_SetWindow(NPP instance, NPWindow* np window)
{
DEBUG_TEST("NPP_SetWindow")
if (instance — NULL) return NPERR NVALID NSTANCE_ERROR;
Pluginlnstance* This = (Pluginlnstance*) instance->pdata;
//
// Note: Before setting fWindow to point to the
// new window, you may wish to compare the new window
// info to the previous window (if any) to note window
// size changes, etc.
// if(!np_window) return NPERR_GENERIC_ERROR; if (! instance) return NPERR_INVALID_INSTANCE_ERROR; if(!This) return NPERR_GENERIC_ERROR;
if (!np_window->window && !This->window) // spurious entry return NPERR_NO_ERROR;
if (!np_window->window && This->window) { // window went away
KillHyperCDWindow(This); return NPERR_NO_ERROR;
} if (!This->window && np_window->window)
{ // First time in — no window created by plugin yet
This->window = (CPluginWindow *) new CPluginWindow(); if ( ! This->window->SubclassWindow((HWND)np_window->window))
{ MessageBox(NULL,"SubclassWindow Failed","HyperCD",MB_OK); return NPERR_GENERIC_ERROR;
}
// Save This pointer in window class member variable.. this lets the
// window message handling have access to the data pointer easily
This->window->StoreData(This);
}
// resize or moved window (or newly created) This->window->InvalidateRect(NULL); This->window->UpdateWindow(); return NPERR_NO_ERROR;
//
// NPP_NewStream:
//
NPError NP LO ADDS
NPP_NewStream(NPP instance,
NPMLMEType type, NPStream *stream, NPBool seekable, uintlό *stype)
{
DEBUG_TEST("NPP_NewStream") if (instance = NULL) return NPERR JNVALID JNSTANCE_ERROR; Pluginlnstance* This = (Pluginlnstance*) instance->pdata;
*stype = NP_ASFILE; return NPERR_NO_ERROR;
int32 STREAMBUFSIZE = OXOFFFFFFF; // If we are reading from a file in NPAsFile
// mode so we can take any size stream in our
// write call (since we ignore it)
//
// NPP JVriteReady:
//. int32 NP_LOADDS
NPP_WriteReady(NPP instance, NPStream * stream)
{
DEBUG_TEST("NPP VriteReady") if (instance NULL)
{ Pluginlnstance* This = (Pluginlnstance*) instance->pdata;
} return STREAMBUFSIZE; // Number of bytes ready to accept in NPP WriteO }
//
// NPP rite:
// int32 NPJLOADDS
NPP_Write(NPP instance, NPStream *stream, int32 offset, int32 len, void *buffer)
{
DEBUG_TEST("NPP_Write") if (instance != NULL)
{ Pluginlnstance* This = (Pluginlnstance*) instance->pdata;
} return len; // The number of bytes accepted
}
//
// NPP_DestroyStream:
//
NPError NP_LOADDS
NPP_DestroyStream(NPP instance, NPStream * stream, NPError reason)
{
DEBUG_TEST("NPP_DestroyStream") if (instance = NULL) return NPERR INVALID JNSTANCE ERROR; Pluginlnstance* This = (Pluginlnstance*) instance->pdata; return NPERR_NO_ERROR;
}
I/.
// NPP StreamAsFile:
// void NP LOADDS
NPP_StreamAsFile(NPP instance, NPStream *stream, const char* szStream)
{
DEBUG_TEST("NPP_StreamAsFile") if (instance — NULL) return; Pluginlnstance* This = (Pluginlnstance*) instance->pdata; if ( ! This->cHypercd) return;
// Obtain object/keys
ObtainKey(Object, szStream); if(bDemandHyperKey) { if(ObjectType(Object) = PGIJTYPERKEY) // file in bDemandHyperKey
{// 1. check we have permission
Permission = PermissionFromWebtoUseHyperKey();
// if our right is lower than the permitted, return ifi ermission. right > User.right) return;
// 2. if we have permission, get the access path strcpy(szPath, GetAccessPath(Permission));
// 3. retrieve the object and wait
RetrieveHyperKeyObject(szPath); return; }
// B. check if the streamed file is PGI_MEDIA else if ObjectType(Object) == PGI_MEDIA) //jpeg, avi, encrypted media type
{ DisplayObject(Object );
} else // anything else under bDemandHyperKey, is not valid return;
} else// for this version, return and not process other command return;
//.
// NPP_Print:
// void NP LOADDS
NPP_Print(NPP instance, NPPrint* printlnfo)
{
DEBUG_TEST("NPP_Print") if(printInfo == NULL) // trap invalid parm return; if (instance != NULL)
{ Pluginlnstance* This = (Pluginlnstance*) instance->pdata; if (printInfo->mode = NP_FULL)
{ //
// Note: If your plugin would like to take over // printing completely when it is in full-screen mode, // set printInfo->pluginPrinted to TRUE and print your // plugin as you see fit. If your plugin wants Netscape // to handle printing in this case, set printInfo->pluginPrinted // to FALSE (the default) and do nothing. If you do want // to handle printing yourself, printOne is true if the // print button (as opposed to the print menu) was clicked. // On the Macintosh, platformPrint is a THPrint; on Windows, // platformPrint is a structure (defined in npapi.h) containing // the printer name, port, etc. // void* platformPrint = printInfo->print.fullPrint.platformPrint; NPBool printOne = printInfo->print.fullPrint.printOne; printInfo->print. fullPrint. pluginPrinted - FALSE; // Do the default
} else // If not fullscreen, we must be embedded
{
//
// Note: If your plugin is embedded, or is full-screen
// but you returned false in pluginPrinted above, NPP Print
// will be called with mode == NP EMBED. The NPWindow
// in the printlnfo gives the location and dimensions of
// the embedded plugin on the printed page. On the Macintosh,
// platformPrint is the printer port; on Windows, platformPrint
// is the handle to the printing device context.
//
NPWindow* printWindow = &(printInfo->print.embedPrint. window); void* platformPrint = printInfo->print.embedPrint. platformPrint;
} //
// NPP_HandleEvent:
// Mac-only.
// . int 16 NPP_HandleEvent(NPP instance, void* event)
{ NPBool eventHandled = FALSE; if (instance = NULL) return eventHandled;
Pluginlnstance* This = (Pluginlnstance*) instance->pdata;
//
// Note: The "event" passed in is a Macintosh // EventRecord*. The event, what field can be any of the // normal Mac event types, or one of the following additional // types defined in npapi.h: getFocusEvent, loseFocusEvent, // adjustCursorEvent. The focus events inform your plugin // that it will become, or is no longer, the recepient of // key events. If your plugin doesn't want to receive key // events, return false when passed at getFocusEvent. The // adjustCursorEvent is passed repeatedly when the mouse is // over your plugin; if your plugin doesn't want to set the // cursor, return false. Handle the standard Mac events as // normal. The return value for all standard events is currently // ignored except for the key event: for key events, only return // true if your plugin has handled that particular key event. // return eventHandled;
} h: mg: hyperkey : npshell. cpp
//
// HyperCD I/O
//
// Function:
// Remap-decrypt-decode and merge the
// missing CRITICAL DATA with the CRIPPLED
// HyperCD files.
//
#include <windows.h> #include <mmsystem.h> #include <digitalv.h> #include <time.h> #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <string.h>
InsertHyperCDIOModuleO;
RemoveHyperCDIOModuleO;
OPEN_HYPERCD();
HDVDCALLBACK HYPERCDIO(LPHYPERCDINFO)
{ switch (uMessage) { case MMIOM_OPEN:
HYPERCD J3pen(); return 0;
case MMIOM_CLOSE:
HYPERCD_Close(); return 0;
case MMIOM_READ:
HYPERCD_ReadMultipleFiles(); return (LPHYPERCDINFO.displacement);
case MMIOM_SEEK: switch (lParam2) { case SEEK_SET: // seek to the absolute position relative to original beginning
HYPERCD_SeekSet(); break; case SEEK_CUR: // move forward relative to the current position
HYPERCD_SeekCur();
case SEEK_END: // seek all the way to the end HYPERCD_SeekEnd(); break;
} return HYPERCD_Offset();
default: return - 1 ;
} } h:\word
The following is the software listing for encrypting the data on the DVD-ROM and cripples the data files thereon allowing playback only on a DVD player that recognizes the Hyper-DVD nature of the DVD-ROM.
/////////////////////////////////////////////////////// // cutter. c
//
// Function; this routine cuts a DVD file into multiple
// sections and encrypts them onto a DVD rom.
// Critical section will be removed and stored on remote
// server. This also alerts DVD player to foreign file
// format and initiates search for permission keys.
////////////////////////////////////////////////////////
#include <Windows.h> #include <stdlib.h> #include <stdlo.h> #include <time.h> #include <string.h> #include <sys\types .h> #include <sys\stat.h>
#define MAX HAEDER_SIZE 64000 szBuffer_PGQ[MAX_HAEDER_SIZE] ; void f111Junk (char * statBuffer, Int n) ; intFileCutter (HWND hWnd,char *fn)
{
Int V,T,L,nType;
Int n;
Int DEBUG =0;
FILE *pinputFile, *out; char filename [MAX_STR] ; char header [MAX_HEADER] , *p, msg [MAX STR] ; char sxNumber [MAX_STR] ; struct_stat statBuffer;
Int nResult; long IRemainBytes; long IReadBufferSize; long IFileSize; long IIndex; long IBytesRead. IBytesWrite; charszinFile [128] , szOutFile [128] , *pin,*pOut; char szOutfile_PGZ [ ]= BIG.PGQ"; FILE *out2;
//get switch -s strcpy (filename . fn) ; 89
_strupr (filename) ; p=filenamej- pi^szinFile; //first SPACE while (p*= =") p ++;
//copy IN file name while (*p ! ="&Sc*pl=0)
{
*pin ++ = *p++;
}
//skip SPACE while (*p==") )
Figure imgf000091_0001
//open files
If (strlen (szinFile) ==0)
{
MessageBox(NULL, "Please drag&drop the file to me.\r\n in DOS, type\"encoder file\" .", Encoder VI .2 " , MBJDK) ; return O;
} /*0pen file pinputFile bin mode; */ if ( (pinputFile = fopen (szinFile, "rb")) ==NULL)
MessageBox(NULL, szinFile, "Error reading file", MBJDK) ; return O; }
// Now read nd cut the file into many parts;
// Critical part: filename.pgq --> stay on remote server
// Chunky part; filename.pgz --> on local media such as
DVD-Rom IBytesRead= fread (szBuffer_PGQ, sizeof (char) ,
MAX_HAEDER_SIZE, pinputFile) ; If(out2 = fopen (szOutfile_PGZ, "w+b")) ==NULL)
MessageBox(NULL, szOutfile_PGZ, "Error creating PGQ file", MB_0K) ; return 0;
} IBytesWRite=fWrite (szBuffer_PGQ, sizeof (char) ,
IBytesRead, out2) ; if (BytesWrite 1+ IBytesRead)
MessageBox(NULL, "", IBytesWRite 1 = IBytesRead", MB_OK) ; f close (out2 ) ;
// now the chunky part
// file type if (strstr (szinFile, ".AVI") 1 = NULL) nType = 1; else if (strstr (szinFile, ".EXE") 1 = NULL) nType = 2; else if (strstr (szinFile, ".MOV") 1 = NULL) nType = 3 ; else if (strstr (szinFile, ".MPG") 1 = NULL) nType = 4 ; else if (strstr (szinFile, ".JPG") 1 = NULL) nType = 6 ; else if (strstr (szinFile, ".GIF") 1 = NULL) nType = 7; else if (strstr (szinFile, ".PIC") 1 = NULL) nType = 8; else if (strstr (szinFile, ".TXT") 1 = NULL) nType = 9; else if (strstr (szinFile, ".HTM") 1 = NULL) nType = 10; else if (strstr (szinFile, ".VOB") 1 = NULL) nType = 11; else
{
MessageBo (NULL, "Unrecognizable file", "Encoder
Error" , MBJDK) ; return 0;
} If (strien(szOutFile) ==0)
{ strcpy (szOutFile, szinFile) ; pOut = strstr (szOutFile, ".") ; pOut + + ; strcpy (pout, "PGZ"); pOut + =3 ;
*pOut=0; wsprintf (msg, "Output file not specified, \nNew output file: [%s]", szOutFile); MessageBox (NULL, msg, "Warningl", MBjDK) ;
}
If ((out = fopen (szOutFile, "w+b")) == NULL)
{
MessageBox (NULL, szOutFile, "Error creating file",
MBJDK) ; return 0;
} DEBUGGER (DEBUG, szOutFile, "File createdl"); //Add HyperLOCK HyperDVD header AddHyperDVDHeaderO;
CutFilelntoMultiplePartsO;
WriteKeyFilesO ; WriteChunkyFiles ( ) ; CloseHDVDFilesO;
CutFilelntoMultipleParts ( )
{
// Create new data structure to hold
// critical data/keys table/list pKeyStruct = new HCDKay; pChunkTable = new HCDChunk;
ExtractKeys (pKeyStruct) pChunkTable) ;
// now we have keys & chunky data, encryptChunkydata
Encrypt1 (pChunkTable, encrypt nethod) ,
Encrypt2 (pKeyStruct, en - method2) ,
// Add encryption method to key structure
Add EMethod ( ) encryp_method) ; return; }
The following is the software listing for determining if a standard or Hyper DVD-ROM is to be played by the player, and for seeking the enabling data, trigger or key from a server or a cable-service provider for providing the missing data necessary for the DVD-player to play a Hyper-DVD.
//
// Player, c
//
// Function:
// This file shows a HyperDVD player that
// plays back HyperDVD files that have been
// encrypted using HyperLOCK patents pending
// technologies.
//
//
//
void PlayRegularDVD(void); GetPermissionFromRemoteServer(int *pPermission); Display(int Message); void PlayHyperDVD(void)
{
// HyperDVD files that are protected by using
// special combinations of county-code and parental
// control code will not play in regular DVD players.
// The following function turns on the appropriate
// switches to allow the files being able to display.
TurnOnHardwareSettingsO;
PlayDVD();
}
// A power-on switch starts this algorithm int main(int argc, char **argv)
{ if(bIsHyperDVDROM()= TRUE)
{
GetPermissionFromRemoteServer(&Permitted); if Permitted = TRUE) PlayHyperDVDQ; else
Display(HYPERDVD_WARNING_MESSAGE);
} else
PlayRegularDVD(); return 1 ; While specific embodiments of the invention have been shown and described, it is to be understood that numerous changes and modifications may be made therein without departing from the scope, spirit and intent of the invention as set forth in the appended claims.

Claims

WHAT I CLAIM IS :
CLAIM 1. A method of transmitting video and/or graphic data files over the Internet or Intranet from a Web site, comprising:
(a) encrypting the video and/or graphic data and storing it at a Web site associated with a server;
(b) encrypting a video player and storing it at the Web site;
(c) downloading the encrypted video and/or graphic data and encrypted video player of said steps (a) and (b) to a requesting computer via the Internet or Intranet;
(d) prior to said step (c) , requesting the downloading of said encrypted video and/or graphic data and encrypted video player by the requesting computer;
(e) decrypting the video and/or graphic data and video player at the requesting computer; and
(f) playing back the decrypted video and/or graphic data via the decrypted video player.
CLAIM 2. A method of playing encrypted video and/or graphic data transmitted over the Internet or Intranet from a Web site, comprising:
(a) requesting by an end user's computer the downloading of encrypted video and/or graphic data and an encrypted video player from a Web site of the Internet or Intranet;
(b) receiving the requested encrypted video and/or graphic data and an encrypted video player from the Web site of the Internet or Intranet; (c) decrypting the encrypted video and/or graphic data and encrypted video player at the requesting computer; and
(f) playing back the decrypted video and/or graphic data via the decrypted video player at the end user's computer.
CLAIM 3. A method of preventing unauthorized use of video and/or graphic data, comprising:
(a) encrypting the video and/or graphic data;
(b) encrypting a video player;
(c) storing at least one of the encrypted video and encrypted player of said steps (a) and (b) at a Web site of the Internet or Intranet;
(d) downloading at least one of the encrypted video and encrypted video player of said steps (a) and (b) to a requesting computer via the Internet or Intranet;
(e) decrypting the encrypted video and/or graphic data and encrypted video player at the requesting computerl; and
(f) playing the decrypted video and/or graphic at the requesting computer via the decrypted player.
CLAIM 4. The method of preventing unauthorized use of video and/or graphic data according to claim 3 , wherein said step (c) comprises storing both the encrypted video and encrypted player of said steps (a) and (b) at the Web site of the Internet or Intranet .
CLAIM 5. The method of preventing unauthorized use of video and/or graphic data according to claim 3, wherein said step (c) comprises storing the encrypted player of said step (b) at the Web site of the Internet or Intranet, said step (d) comprising transmitting the encrypted player to the requesting computer .
CLAIM 6. The method of preventing unauthorized use of video and/or graphic data, according to claim 5, wherein said step
(a) comprises storing the encrypted video files at a requesting end-user's computer.
CLAIM 7. The method of preventing unauthorized use of video and/or graphic data, according to claim 3, wherein said step (c) comprises storing the encrypted video and/or graphic data of said step (a) at the Web site of the Internet or Intranet, said step (d) comprising transmitting the encrypted video and/or graphic data to the requesting computer.
CLAIM 8. The method of preventing unauthorized use of video and/or graphic data, according to claim 7, wherein said step
(b) comprises storing the encrypted player at a requesting end-user's computer.
CLAIM 9. In a large storage-capacity ROM-disk for storing large amounts of data, such as video and audio, for playback by a player, said ROM-disk having at least one of a parental code means and a country code means thereon, the improvement comprising: additional code means thereon for preventing playback of said ROM-disk without enabling data.
CLAIM 10. The large storage-capacity ROM-disk for storing large amounts of data according to claim 9, wherein said parental code means comprises one of a first code representing children-only titles that may be played by said player, a second code representing that only adult titles are prevented from being played by said player, and a third code representing that all titles may be played by said player, wherein said additional code means for preventing playback of said ROM-disk without enabling data comprises a fourth code of said parental code different from said first, second and third codes.
CLAIM 11. The large storage-capacity ROM-disk for storing large amounts of data according to claim 9, wherein said country code means comprises one of a plurality of codes representing a specific country in which said ROM-disk is to be played, said player having a corresponding code matching said one country code allowing playback of said ROM-disk, wherein said additional code means for preventing playback of said ROM-disk without enabling data comprises another unique country code, said another unique country code being one that does not represent an actual country.
CLAIM 12. The large storage-capacity ROM-disk for storing large amounts of data according to claim 9, wherein said ROM- disk is a DVD-ROM disk.
CLAIM 13. The large storage-capacity ROM-disk for storing large amounts of data according to claim 9, in combination with player means for playing back the data on said ROM-disk, said player means comprising differentiating means for differentiating between a ROM-disk having said additional code thereon, and a ROM-disk not having said additional code thereon, whereby when said differentiating means of said player means detects a ROM-disk without said another code thereon, said player means automatically plays back the data thereon, and whereby if said differentiating means of said player means detects a ROM-disk with said another code thereon, said player means automatically generates a call to a service provider seeking to obtain said enabling data in order to allow playback of said ROM-disk.
CLAIM 14. The large storage-capacity ROM-disk for storing large amounts of data according to claim 13, wherein said player means comprises enabling-data seeking means for calling a service provider for requesting the downloading of said enabling data; said player means further comprising a disk- player, trigger means, and switch means, said trigger means generating a trigger signal in response to the reception of said enabling data from the service provider for actuating said switch means for actuating said disk-player to play the ROM-disk.
CLAIM 15. The large storage-capacity ROM-disk for storing large amounts of data according to claim 14, wherein said ROM-disk comprises encrypted data, said player means further comprising decrypting means for decrypting said data for playback; said trigger means triggering said switch means to couple said decrypting means to said disk-player for decrypting said data in order to allow playback by said disk-player.
CLAIM 16. The large storage-capacity ROM-disk for storing large amounts of data according to claim 14 , wherein said player means comprises a microprocessor, and each of said enabling-data seeking means, trigger means, and switch means comprises software code operatively associated with said microprocessor .
CLAIM 17. The large storage-capacity ROM-disk for storing large amounts of data according to claim 13, wherein said player means comprises enabling-data seeking means for calling a service provider for requesting the downloading of said enabling data; and coupling means coupling said player means to a service provider, said coupling means comprising at least one of a modem for connecting said player means to said service provider, and a cable box for connecting said player means to a cable-TV service provider.
CLAIM 18. The large storage-capacity ROM-disk for storing large amounts of data according to claim 16, wherein said ROM-disk is a DVD-ROM disk.
CLAIM 19. A ROM-disk playing apparatus for discriminating between a large storage-capacity ROM-disk having playback- prevent code means thereon and a ROM-disk not having playback-prevent code means thereon, comprising: a disk-player for playing back a ROM-disk; a microprocessor; memory means for storing software; software means comprising first means for detecting the presence of a ROM-disk having playback-prevent code means thereon; second means for generating a call to a service provider in response to said first means detecting the presence of said code means, in order to retrieve enabling data for allowing playback of data on a ROM-disk; and third means for generating a trigger to allow said disk-player to playback said data on a ROM-disk.
CLAIM 20. The ROM-disk playing apparatus according to claim
19, wherein said memory means further comprises fourth means for decrypting encrypted data on a ROM-disk; said third means coupling said fourth means for decrypting to said disk-player.
CLAIM 21. The ROM-disk playing apparatus according to claim
20, wherein said disk-player comprises a MPEG-2 video player.
CLAIM 22. The ROM-disk playing apparatus according to claim 19, further comprising coupling means for coupling said second means for generating a call to a service provider, said coupling means comprising at least one of a modem and a cable box.
CLAIM 23. The ROM-disk playing apparatus according to claim 19, in combination with a DVD-ROM disk, said DVD-ROM disk having at least one of a parental code means and a country code means thereon, and playback-prevent code means thereon for preventing playback of said ROM-disk without enabling data;
CLAIM 24. The ROM-disk playing apparatus according to claim 23, wherein said parental code means comprises one of a first code representing children-only titles that may be played by said disk-player, a second code representing that only adult titles are prevented from being played by said disk-player, and a third code representing that all titles may be played by said disk-player, wherein said additional code means for preventing playback of said ROM-disk without enabling data comprises a fourth code of said parental code different from said first, second and third codes.
CLAIM 25. The ROM-disk playing apparatus according to claim 23, wherein said country code means comprises one of a plurality of codes representing a specific country in which said ROM-disk is to be played, said disk-player having a corresponding code matching said one country code allowing playback of said ROM-disk, wherein said additional code means for preventing playback of said ROM-disk without enabling data comprises another unique country code, said another unique country code being one that does not represent an actual country.
CLAIM 26. A method of labeling a DVD-ROM comprising:
(a) encoding the DVD-ROM with a code that prevents playback of the data on the DVD-ROM without first obtaining enabling data;
(b) said step (a) comprising encoding the DVD-ROM with at least one of a new parental code different from those used for parental control of playback of DVD-titles, and a new country code that does not actually represent a country.
CLAIM 27. A method of playing back a large storage-capacity ROM-disk, comprising:
(a) reading a ROM-disk via a player apparatus, and differentiating between a ROM-disk encoded to prevent playback thereof without enabling data, and a ROM-disk not encoded to prevent playback without enabling data;
(b) playing the ROM-disk if it is not encoded to prevent playback without enabling data;
(c) generating an enabling-data request to a service- provider if the ROM-disk is encoded to prevent playback without enabling data;
(d) sending the enabling-data request to a service- provider for requesting the return- sending of enabling data that will enable the playback of the ROM-disk with code to prevent playback;
(e) receiving the enabling data from the service provider; and
(f) enabling the playback of the ROM-disk with code to prevent playback by the player apparatus in response to said step (e) .
CLAIM 28. The method of playing back a large storage-capacity ROM-disk according to claim 27, wherein before said step (a) :
(g) encoding a ROM-disk to prevent playback without having first obtained enabling data therefor.
CLAIM 29. The method of playing back a large storage-capacity ROM-disk according to claim 27, wherein said step (d) comprises communicating with a service provider by at least one of the Internet and a cable-box.
CLAIM 30. The method of playing back a large storage-capacity ROM-disk according to claim 27, wherein said step (f) comprises connecting a decryption means to the player apparatus for decrypting the encrypted data on the ROM-disk.
CLAIM 31. The method of playing back a large storage-capacity ROM-disk according to claim 27, wherein said step (a) comprises reading a DVD disk.
CLAIM 32. A method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over a network, comprising:
(a) converting analogue video and/or audio data into digital data;
(b) storing the digital data representing the video and/or audio on a storage medium for use by an end user's computer;
(c) crippling the video and/or audio files on the storage medium , whereupon the files are rendered unplayable without an uncrippling trigger;
(d) storing uncrippling trigger data at a host computer for use in uncrippling the data files on the storage medium;
(e) transmitting the uncrippling trigger data from the host computer through a network to the end-user's computer with which the storage medium having the crippled data files thereon is associated;
(f) receiving the uncrippling trigger data at the end- user's computer in the volatile RAM of the end-user's computer; and
(g) instantly uncrippling and playing the crippled data files on the storage medium by means of combining the uncrippling trigger data sent by the host computer in said step (e) with the crippled data on the storage medium.
CLAIM 33. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over the Internet, according to claim 32, wherein said step (f) comprises catching the uncrippling trigger data the crippled data files and directing the encoded text format data to a specific directory-location of the end-user computer.
CLAIM 34. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over the Internet, according to claim 32, wherein said step (c) comprises removing the header data from the video/audio files; said step (d) comprising storing the header data representing the header data removed from the video/audio files in said step (c) .
CLAIM 35. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over the Internet, according to claim 32, wherein before said step (e) , encoding the uncrippling trigger data from binary format into encoded text format data; and after said step (f) , decoding the encoded text format data back into binary format .
CLAIM 36. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over the Internet, according to claim 32, wherein said step (g) is carried out immediately after said step (f) , and immediately after said step (g) , playing the video and/or audio on a player.
CLAIM 37. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over the Internet, according to claim 36, wherein said step (f) comprises directing the incoming uncrippling trigger data to a cache directory; said step (g) being performed while said uncrippling trigger data is in said cache directory for immediate playback of said video and/or audio files on said storage medium.
CLAIM 38. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over the Internet, according to claim 35, wherein said step of encoding the uncrippling trigger data from binary format into encoded text comprises converting the binary data into seven-digit ASCII code.
CLAIM 39. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over the Internet, according to claim 36, said step of playing comprising converting the digital binary data back into analogue .
CLAIM 40. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over the Internet, according to claim 32, wherein said storage medium comprises memory means for representing the necessary information for automatically and directly connecting via the Internet the end-user's computer, with which the storage medium is associated, to a host computer which stores the uncrippling trigger data for the video/audio files on the storage medium .
CLAIM 41. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over the Internet, according to claim 32, further comprising:
(h) allowing, by server-permission only, the end-user the ability to store said trigger on non-volatile media for permanent ownership of said data.
CLAIM 42. A method of transmitting data invoking a crippled file on a storage medium containing video and/or audio data over the Internet, comprising:
(a) storing uncrippling trigger data at a host computer for use in uncrippling video/audio files on a storage medium;
(b) transmitting the uncrippling trigger data from the host computer through the Internet to the end-user's computer with which the storage medium having the crippled files thereon is associated;
(c) receiving the uncrippling trigger data at the end- user's computer over the Internet; and
(d) uncrippling the crippled data files on the storage medium by means of the uncrippling trigger data sent by the host computer in said step (b) .
CLAIM 43. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio data over the Internet, according to claim 42, wherein said step (c) comprises catching the uncrippling trigger data for the crippled data files and directing the encoded text format data to a specific cache-directory location of the end-user computer for immediate playback of the video and/or audio data.
CLAIM 44. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio data over the Internet, according to claim 42, wherein before said step (a) , removing the header data from the video/audio files; said step (d) comprising restoring the header data representing the header data removed from the video/audio files.
CLAIM 45. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio data over the Internet, according to claim 42, wherein before said step (b) , encoding the uncrippling trigger data from binary format into encoded text format data; and after said step (c) , decoding the encoded text format data back into binary format .
CLAIM 46. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio data over the Internet, according to claim 42, wherein after said steps (c) and (d) are carried substantially simultaneously so that is carried out immediately so that the video and/or audio data may be played back substantially immediately after said step (d) .
CLAIM 47. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over the Internet, according to claim 43, wherein said step (c) comprises directing the incoming uncrippling trigger data to a cache directory.
CLAIM 48. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over the Internet, according to claim 42, wherein said storage medium comprises memory means for representing the necessary information for automatically and directly connecting via the Internet the end-user's computer, said method further comprising before said step (a) , automatically and directly connecting the end user's computer to the host computer which has stored thereat the uncrippling trigger data for the video/audio files on the storage medium by means of the memory means of the storage medium for representing the necessary information for automatically and directly connecting via the Internet.
CLAIM 49. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over the Internet, according to claim 42, wherein said step (a) comprises storing at least one of the following: Video/audio header data; data for removing the hidden-status flag for the video/audio data files on the storage medium; data for unzipping the zipped data files of the video/audio data files on storage medium; data for changing the extension of the video/audio data files.
CLAIM 50. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over the Internet, according to claim 42, wherein said storage medium comprises at least one of: CD-ROM, floppy disk, and hard drive .
CLAIM 51. The method of transmitting data invoking a crippled file on a storage medium containing video and/or audio over the Internet, according to claim 47, further comprising permanently storing the incoming uncrippling trigger data in ROM of the end-user's computer, for repeatedly uncrippling the crippled file when the playing thereof is required.
CLAIM 52. In a CD-ROM for use with a computer, which CD-ROM
Internet comprises memory means for storing binary data thereon, the improvement comprising: said memory means containing data files representative of video and/or audio; said data files being crippled, whereby, without uncrippling trigger data, said data files are not capable of being played by a computer.
CLAIM 53. The CD-ROM for use with a computer according to claim 52, wherein said crippled data files lack the necessary audio/video header information.
CLAIM 54. The CD-ROM for use with a computer according to claim 52, in combination with an end-user's computer for use in playing back the data files on the CD-ROM, a host computer having a memory storing said uncrippling data thereon, and the Internet system linking said end-user's computer with said host computer, whereupon said host computer's sending said uncrippling data stored in said memory thereof to said end-user's computer, said crippled data files on said CD-ROM associated with said end-user's computer is uncrippled and rendered playable .
CLAIM 55. A method of transmitting data over the Internet invoking a crippled file contained on a storage medium containing stored, crippled digital-data information, comprising:
(a) storing uncrippling trigger data at a host computer for use in uncrippling the data files on the storage medium;
(b) transmitting the uncrippling trigger data from the host computer's server through the Internet to the end-user's computer with which the storage medium having the crippled data files thereon is associated: (c) receiving the uncrippling trigger data at the end- user's computer; and
(d) uncrippling the crippled data files on the storage medium by means of the uncrippling trigger data sent by the host computer in said step (b) .
CLAIM 56. A method of receiving triggering data for a crippled file at a receiving computer over the Internet, comprising:
(a) establishing a socket-to-socket connection between a host computer, from which the video and/or audio trigger data is being transmitted on the Internet, and a receiving computer or terminal;
(b) receiving the trigger data over the Internet at the receiving computer or terminal, said trigger data allowing the uncrippling of the vide and/or audio files stored at the receiving computer;
(c) catching the trigger data at the receiving computer or terminal, and directing the trigger data to a specific directory location in computer memory of the receiving computer or terminal ;
(d) decoding the trigger data into binary format, and, thereafter;
(e) playing the video and/or audio files stored at the receiving computer.
CLAIM 57. The method of receiving triggering data for a crippled file according to claim 56, wherein said step (c) comprises directing the incoming encoded text format data to a RAM cache directory.
CLAIM 58. An apparatus for receiving de-crippling video and/or audio data over the Internet at a receiving computer or terminal, comprising: a computer means comprising at least one memory means for fixedly storing information, said memory means storing crippled video and/or audio files; means for establishing a point-to-point connection between the computer means and a host computer from which the de-crippling video and/or audio data is being transmitted on the Internet, and for receiving the de-crippling video and/or audio data over the Internet ; said memory means of said computer means further comprising software means for catching the de-crippling video and/or audio data and directing it to a specific directory- location in the RAM of said computer means, and for directing the de-crippling video and/or audio data to a player means for the playing thereof; said computer means further comprising player means for playing the video and/or audio, said de-crippling video and/or audio data thereby allowing the playing of the video and/or audio files stored on said memory means.
CLAIM 59. The apparatus for receiving de-crippling video and/or audio data over the Internet at a receiving computer or terminal, according to claim 58, wherein said software means for catching the de-crippling video and/or audio data directs the de-crippling video and/or audio data to a cache- directory of RAM.
PCT/US1997/020929 1996-11-25 1997-11-17 Method for securely triggering the playing of crippled local media through the web WO1998024037A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP97947544A EP0974217A2 (en) 1996-11-25 1997-11-17 Method of secure server control of local media via a trigger through a network for instant local access of encrypted data on local media
CA002271012A CA2271012A1 (en) 1996-11-25 1997-11-17 Method for securely triggering the playing of crippled local media through the web
AU52598/98A AU5259898A (en) 1996-11-25 1997-11-17 Method of secure server control of local media via a trigger through a network for instant local access of encrypted data on local media

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US08/756,162 1996-11-25
US08/756,162 US5892825A (en) 1996-05-15 1996-11-25 Method of secure server control of local media via a trigger through a network for instant local access of encrypted data on local media
US08/792,092 1997-01-31
US08/792,092 US5937164A (en) 1995-12-07 1997-01-31 Method and apparatus of secure server control of local media via a trigger through a network for instant local access of encrypted data on local media within a platform independent networking system
US08/872,082 US6185306B1 (en) 1995-12-07 1997-06-10 Method of secure server control of local media via a trigger through a network for local access of encrypted data on an internet webpage
US08/872,082 1997-06-10
US91179697A 1997-08-15 1997-08-15
US08/911,796 1997-08-15

Publications (3)

Publication Number Publication Date
WO1998024037A2 WO1998024037A2 (en) 1998-06-04
WO1998024037A9 true WO1998024037A9 (en) 1998-09-17
WO1998024037A3 WO1998024037A3 (en) 1998-12-03

Family

ID=27505674

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1997/020929 WO1998024037A2 (en) 1996-11-25 1997-11-17 Method for securely triggering the playing of crippled local media through the web

Country Status (4)

Country Link
EP (1) EP0974217A2 (en)
AU (1) AU5259898A (en)
CA (1) CA2271012A1 (en)
WO (1) WO1998024037A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9224168B2 (en) 2004-11-15 2015-12-29 Microsoft Technology Licensing, Llc Tuning product policy using observed evidence of customer behavior
US9336359B2 (en) 2004-10-18 2016-05-10 Microsoft Technology Licensing, Llc Device certificate individualization

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
WO2000052898A2 (en) * 1999-03-02 2000-09-08 Message Bay, Inc. Method and apparatus for implementing data communications via a web-based communications system
US7073063B2 (en) 1999-03-27 2006-07-04 Microsoft Corporation Binding a digital license to a portable device or the like in a digital rights management (DRM) system and checking out/checking in the digital license to/from the portable device or the like
US20020019814A1 (en) 2001-03-01 2002-02-14 Krishnamurthy Ganesan Specifying rights in a digital rights license according to events
US7383205B1 (en) 1999-03-27 2008-06-03 Microsoft Corporation Structure of a digital content package
US7136838B1 (en) 1999-03-27 2006-11-14 Microsoft Corporation Digital license and method for obtaining/providing a digital license
US6829708B1 (en) 1999-03-27 2004-12-07 Microsoft Corporation Specifying security for an element by assigning a scaled value representative of the relative security thereof
US7319759B1 (en) 1999-03-27 2008-01-15 Microsoft Corporation Producing a new black box for a digital rights management (DRM) system
US7024393B1 (en) 1999-03-27 2006-04-04 Microsoft Corporation Structural of digital rights management (DRM) system
US7103574B1 (en) 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
US6973444B1 (en) 1999-03-27 2005-12-06 Microsoft Corporation Method for interdependently validating a digital content package and a corresponding digital license
US6816596B1 (en) 2000-01-14 2004-11-09 Microsoft Corporation Encrypting a digital object based on a key ID selected therefor
GB2364139B (en) * 1999-12-22 2004-05-26 Ibm A security mechanism providing access control for locally-held data
US7353209B1 (en) 2000-01-14 2008-04-01 Microsoft Corporation Releasing decrypted digital content to an authenticated path
US6772340B1 (en) 2000-01-14 2004-08-03 Microsoft Corporation Digital rights management system operating on computing device and having black box tied to computing device
US6912528B2 (en) 2000-01-18 2005-06-28 Gregg S. Homer Rechargeable media distribution and play system
DE10006838A1 (en) * 2000-02-12 2001-08-30 Bernd Joachim Siegle Digitized film distribution in Internet/data network, involves transmitting film from user to PC or other receiver
GB2366162A (en) * 2000-08-15 2002-02-27 Chargenet Ltd Controlling access to a telecommunicated data file
US7010808B1 (en) 2000-08-25 2006-03-07 Microsoft Corporation Binding digital content to a portable storage device or the like in a digital rights management (DRM) system
US7039615B1 (en) 2000-09-28 2006-05-02 Microsoft Corporation Retail transactions involving digital content in a digital rights management (DRM) system
US7149722B1 (en) 2000-09-28 2006-12-12 Microsoft Corporation Retail transactions involving distributed and super-distributed digital content in a digital rights management (DRM) system
EP1215905B2 (en) 2000-12-15 2010-04-21 Panasonic Corporation Reception apparatus having a storage unit for recording a scrambled broadcast signal and broadcast apparatus for scrambling a signal to be broadcast, and associated methods
WO2002048842A2 (en) * 2000-12-15 2002-06-20 J!Ve Media Technologies Inc. Media files with additional content
US7239708B2 (en) 2001-06-27 2007-07-03 Microsoft Corporation Protecting decrypted compressed content and decrypted decompressed content at a digital rights management client
US6948073B2 (en) 2001-06-27 2005-09-20 Microsoft Corporation Protecting decrypted compressed content and decrypted decompressed content at a digital rights management client
GB2381087A (en) * 2001-10-15 2003-04-23 Simon Alan Spacey Method for the secure distribution and use of electronic media
US7107461B2 (en) * 2002-06-03 2006-09-12 Sony Computer Entertainment America, Inc. Methods and apparatus for customizing a rewritable storage medium
BRPI0410734A (en) * 2003-05-27 2006-06-27 Lg Electronics Inc physical recording medium having data structure to manage your master data and additional content data and recording and playback methods and apparatus
US7979911B2 (en) 2003-10-08 2011-07-12 Microsoft Corporation First computer process and second computer process proxy-executing code from third computer process on behalf of first process
US8103592B2 (en) 2003-10-08 2012-01-24 Microsoft Corporation First computer process and second computer process proxy-executing code on behalf of first process
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US7549051B2 (en) 2005-03-10 2009-06-16 Microsoft Corporation Long-life digital certification for publishing long-life digital content or the like in content rights management system or the like
US7856404B2 (en) 2005-04-14 2010-12-21 Microsoft Corporation Playlist burning in rights-management context
US8738536B2 (en) 2005-04-14 2014-05-27 Microsoft Corporation Licensing content for use on portable device
US7693280B2 (en) 2005-04-22 2010-04-06 Microsoft Corporation Rights management system for streamed multimedia content
US9507919B2 (en) 2005-04-22 2016-11-29 Microsoft Technology Licensing, Llc Rights management system for streamed multimedia content
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US8290874B2 (en) 2005-04-22 2012-10-16 Microsoft Corporation Rights management system for streamed multimedia content
CN116506850B (en) * 2023-06-27 2023-10-03 中国电信股份有限公司 Network access method, device, wireless station, target server and storage medium

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4930160A (en) * 1987-09-02 1990-05-29 Vogel Peter S Automatic censorship of video programs
US5319705A (en) * 1992-10-21 1994-06-07 International Business Machines Corporation Method and system for multimedia access control enablement
US5267314A (en) * 1992-11-17 1993-11-30 Leon Stambler Secure transaction system and method utilized therein
IL110891A (en) * 1993-09-14 1999-03-12 Spyrus System and method for data access control
US5576843A (en) * 1993-10-29 1996-11-19 Time Warner Entertainment Co., L.P. System and method for controlling play of multiple dialog audio tracks of a software carrier
US5509074A (en) * 1994-01-27 1996-04-16 At&T Corp. Method of protecting electronically published materials using cryptographic protocols
EP0673034B1 (en) * 1994-03-19 2003-07-16 Sony Corporation Optical disk and method and apparatus for recording and then playing information back from that disk
JPH08263438A (en) * 1994-11-23 1996-10-11 Xerox Corp Distribution and use control system of digital work and access control method to digital work
CA2160942A1 (en) * 1994-12-16 1996-06-17 Alexander Gibson Fraser Method of protecting proprietary rights in works of authorship
JPH08305558A (en) * 1995-04-27 1996-11-22 Casio Comput Co Ltd Ciphering program arithmetic unit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9336359B2 (en) 2004-10-18 2016-05-10 Microsoft Technology Licensing, Llc Device certificate individualization
US9224168B2 (en) 2004-11-15 2015-12-29 Microsoft Technology Licensing, Llc Tuning product policy using observed evidence of customer behavior

Similar Documents

Publication Publication Date Title
WO1998024037A9 (en) Method for securely triggering the playing of crippled local media through the web
EP0974217A2 (en) Method of secure server control of local media via a trigger through a network for instant local access of encrypted data on local media
US5892825A (en) Method of secure server control of local media via a trigger through a network for instant local access of encrypted data on local media
US6185306B1 (en) Method of secure server control of local media via a trigger through a network for local access of encrypted data on an internet webpage
US5937164A (en) Method and apparatus of secure server control of local media via a trigger through a network for instant local access of encrypted data on local media within a platform independent networking system
KR101037838B1 (en) Methods and system for secure network-based distribution of content
KR100827215B1 (en) Connected audio and other media objects
US7483958B1 (en) Methods and apparatuses for sharing media content, libraries and playlists
EP1357734A1 (en) Contents directory service system
JP2006526204A (en) Secure streaming container
EP1089241A2 (en) Digital data copyright protection system
KR20030079935A (en) Computer-readable information storage medium where content data is stored and content charging system
JP2001274788A (en) Distribution of digital contents using web broadcast communication service
US20040098344A1 (en) Content data encoding system and content registering system
WO2002056220A1 (en) Information storage medium where program for charging and using content and program-loaded device
WO2003062962A2 (en) Method and system for securely transmitting and distributing information and for producing a physical instantiation of the transmitted information in an intermediate, information-storage medium
KR101564731B1 (en) System and method for tracking a downloaded digital media file