MORE INFORMATION
Most of the information below applies to the 32-bit versions of Internet
Explorer, unless specifically indicated.
In each of the following DDE transactions, you need to specify the
following:
ApplicationName : iexplore
DDE Transaction Type: XTYP_EXECUTE or XTYP_REQUEST
Topic and item names and expected return values for each verb are described
below. Note that Internet Explorer version 2.0 and earlier used "mosaic" as
its service name, instead of "iexplore."
Note that all strings passed to DDEML using DdeCreateStringHandle are
limited to 255 characters. When passing item names to any of the topics
described below, strings greater than 255 characters long are truncated.
For more information about this 255-character limit in DDEML, please see
the following article in the Microsoft Knowledge Base:
102570
DOCERR: DdeCreateStringHandle() lpszString param
OpenURL
OpenURL retrieves a URL off the Web and displays it, based on specified
WindowID:
topicName: WWW_OpenURL
itemName : URL <Example: "<WWLINK TYPE="GENERIC" VALUE="http://www.microsoft.com">">http://www.microsoft.com"></WWLINK>
returnValue: -2 for acknowledgment, -3 for error
In the 32-bit versions of Internet Explorer, all other parameters specified
in the SDI spec are ignored.
Note that when specifying the URL for the 16-bit version of Internet
Explorer, be sure to specify the full URL, including the protocol, for
example:
For more information about developing Web-based solutions for Microsoft Internet Explorer, visit the following Microsoft Web sites:
instead of "www.msdn.microsoft.com";
otherwise, the OpenUrl call will fail.
For IE4, itemName can be specified as follows:
itemName: URL,[FileSpec],WindowID <Example:
"<WWLINK TYPE="GENERIC" VALUE="http://www.microsoft.com",,0>">http://www.microsoft.com",,0></WWLINK>
Note that the second parameter, FileSpec, specified in the SDI spec, is
ignored, and is, therefore, not specified in the itemName example above.
All other parameters following the WindowID parameter that are not
specified above are similarly ignored.
Specifying a WindowID of 0 tells the browser to open a new window; whereas,
-1 opens the URL in the most recently active browser window.
ShowFile
ShowFile passes FileSpec to be rendered in a given WindowID:
topicName: WWW_ShowFile
itemName: FileSpec
returnValue: -2 for acknowledgment, -3 for error
All other parameters are ignored.
ActivateWindow
Regardless of the WindowId specified, ActivateWindow brings the most
recently active browser window to the foreground:
topicName: WWW_Activate
itemName: WindowID <any value>
returnValue: WindowID
All other parameters are ignored.
Note that the WindowID returned is synthetic; that is, it can only be used
in other DDE transactions with Internet Explorer. It should not be assumed
as an HWND.
Exit
Exit tells the browser to shut down and exit:
topicName: WWW_Exit
itemName: WWW_Exit
returnValue: 0
RegisterURLEcho
RegisterURLEcho requests that ApplicationName be notified of URLEcho events
whenever a URL gets loaded. Multiple servers can be registered to get these
notifications:
topicName: WWW_RegisterURLEcho
itemName: ApplicationName (enclosed in double quotes)
returnValue: Non-Zero for success, 0 for failure
ApplicationName is a DDE server that is registered to receive WWW_URLEcho
notifications from the browser with the following information:
topicName (hsz1): WWW_URLEcho
itemName (hsz2): URL,MIMEType,WindowID
<Example: "<WWLINK TYPE="GENERIC" VALUE="http://www.home.com","text/html",-1>">http://www.home.com","text/html",-1></WWLINK>
Transaction: XTYP_POKE
NOTE: WWW_RegisterURLEcho and WWW_UnRegisterURLEcho are new to IE 3.01. An
application using IE 3.0 may need to upgrade to IE 3.01 to take advantage
of this functionality.
UnRegisterURLEcho
UnRegisterURLEcho terminates associated request for URLEcho events
notification:
topicName: WWW_UnRegisterURLEcho
itemName: ApplicationName (enclosed in double quotes)
returnValue: 0
Internet Explorer 4 returns success/failure on this (instead of ALWAYS 0).
RegisterProtocol
RegisterProtocol registers the DDE Server application, Server.exe, to
handle URLs of a specific Protocol type:
topic Name: WWW_RegisterProtocol
item Name: AppName,Protocol <Example:"AppName","mailto">
Where "AppName" is Server.exe's registered Service Name, and "mailto" is
the protocol to be registered.
Note that each of the strings have to be explicitly enclosed in double
quotes. For Example, in C, the same string will have to be specified as
follows:
"\"AppName\",\"mailto\""
returnValue: Non-Zero for success, 0 for failure
Server.exe will then get notifications from the browser with the following
information:
topic Name (hsz1): WWW_OpenURL
item Name (hsz2): URL,[FileSpec],WindowID,Flags
<Example:"mailto:billg@ms.com",,-1,0>
Transaction: XTYP_REQUEST
Note that Flags is currently undefined and is always set to 0.
In order to convert hsz1 and hsz2 into strings, the function DdeQueryString
needs to be called.
Note that, as indicated in the specification, a protocol can be registered
to only one DDE server application at a time. In this case, only the
application Server.exe will get notifications from the browser whenever the
user clicks on any "mailto:" reference on a Web page.
NOTE: As of Internet Explorer 4.0, RegisterProtocol (and
UnRegisterProtocol) are no longer supported. The replacement technology for
DDE in this regard is "Asynchronous Pluggable Protocols." See the REFERENCES section.
UnRegisterProtocol
UnRegisterProtocol terminates associated request for protocol notification:
topicName: WWW_UnRegisterProtocol
itemName: ApplicationName (enclosed in double quotes)
returnValue: 0
ListWindows
According to the Spyglass specification, returns a list of window IDs for
windows currently used by the browser:
topicName: WWW_ListWindows
itemName: WWW_ListWindows
returns: NumItemsInTheList,ArrayOfWindowIDs
(ie [count,winID,winID,winID])
Currently Internet Explorer does not return a list of window IDs, but
rather a list corresponding to the number of instances of the browser that
are currently opened. For additional information, please see the following
article in the Microsoft Knowledge Base:
191508
PRB: Confusing Return Values from DDE topic WWW_ListWindows
GetWindowInfo
Returns URL and WindowText currently being displayed in the browser window:
topicName: WWW_GetWindowInfo
itemName: WWW_GetWindowInfo
returnValue: URL,WindowText
<Example: "<WWLINK TYPE="GENERIC" VALUE="http://www.microsoft.com/","Microsoft">http://www.microsoft.com/","Microsoft</WWLINK> Home Page">
Note that the strings are quoted; therefore, double quotes are denoted with
backslashes. For example, if the title consists of the three characters
!"!, the title portion of the returned string as the six characters "!\"!".
Summary Table
The following table summarizes the DDE topics that are supported by various
versions of Internet Explorer:
"SpyGlass" indicates that the topic is described in the SpyGlass
specification located at WWW.SPYGLASS.COM (search for "SDI").
16bit 16bit SP1 Beta
3.02 3.03 4.0 4.0 4.01 4.01 5.0
DDE Topic Status * 1712 PP2 2106 3110 626
___________________________ ________ __________________________________
WWW_Activate SpyGlass X X X X X X X
WWW_BeginProgress SpyGlass X
WWW_CancelTransaction SpyGlass X X
WWW_EndProgress SpyGlass X
WWW_Exit SpyGlass X X X X X X X
WWW_GetWindowInfo SpyGlass X X X X X X X
WWW_ListWindows SpyGlass X X X X X X X
WWW_MakingProgress SpyGlass X
WWW_OpenURL SpyGlass X X X X X X X
WWW_OpenURLResult SpyGlass X
WWW_ParseAnchor SpyGlass X X
WWW_QueryVersion SpyGlass X X
WWW_RegisterAppClose SpyGlass X
WWW_RegisterDone SpyGlass X X
WWW_RegisterProtocol SpyGlass X X
WWW_RegisterURLEcho SpyGlass X X X X X X X
WWW_RegisterViewer SpyGlass X X
WWW_RegisterWindowClose SpyGlass X X
WWW_SetProgressRange SpyGlass X
WWW_ShowFile SpyGlass X X X X X X X
WWW_UnRegisterAppClose SpyGlass X
WWW_UnRegisterProtocol SpyGlass X X
WWW_UnRegisterURLEcho SpyGlass X X X X X X X
WWW_UnRegisterWindowClose SpyGlass X X
WWW_UnRegisterViewer SpyGlass X X
For additional information, please see the following articles in the
Microsoft Knowledge Base:
160976
How to Control the Currently Running Instance of IE3 via DDE
191508
Confusing Return Values from DDE topic WWW_ListWindows