How To Determine Whether a User Is Subscribed to a Channel (175504)
The information in this article applies to:
- Microsoft Internet Explorer (Programming) 4.0
- Microsoft Internet Explorer (Programming) 4.01
- Microsoft Internet Explorer (Programming) 5
- Microsoft Internet Explorer (Programming) 5.5
This article was previously published under Q175504 SUMMARY
With the introduction of Active Channels in Internet Explorer 4.0, it may
be desirable to determine whether a user is already subscribed to a
channel, so that a Web page or an application does not redundantly offer
users the ability to subscribe to a channel they've already subscribed to.
MORE INFORMATION
This article describes how to check a subscription from C++, Visual Basic,
and script.
C++ - using ISubscriptionMgr::IsSubscribed
The code below demonstrates how this can be done using C++,
from a console application:
#include <windows.h>
#include <tchar.h>
#include <iostream.h>
#include <subsmgr.h>
#include <stdio.h>
void main()
{
ISubscriptionMgr *pSubscriptionMgr;
CoInitialize(NULL);
HRESULT hr = CoCreateInstance(CLSID_SubscriptionMgr,
NULL,
CLSCTX_INPROC_SERVER,
IID_ISubscriptionMgr,
(void**)&pSubscriptionMgr);
if (SUCCEEDED(hr))
{
BOOL Bool;
BSTR bstrURL =
SysAllocString(L"http://test.microsoft.com/tst.cdf");
hr = pSubscriptionMgr->IsSubscribed(bstrURL, &Bool);
pSubscriptionMgr->Release();
char szBuffer[250];
TCHAR szURL[200];
WideCharToMultiByte(CP_ACP, 0, bstrURL, -1, szURL, 200, NULL,
NULL);
if (Bool)
wsprintf (szBuffer,"YES, you are subscribed to %s\n",szURL);
else
wsprintf (szBuffer,"NOPE, you are NOT subscribed to %s\n",
szURL);
cout << szBuffer;
SysFreeString (bstrURL);
}
CoUninitialize();
}
Visual Basic - Using the ShellUIHelper Object
The code below demonstrates how this can be done in a standard Visual Basic
application. To use the ShellUIHelper object, use Project->References to
add a reference to "Microsoft Internet Controls."
Private Sub Form_Load()
Dim ShlHlpr As ShellUIHelper
Set ShlHlpr = New ShellUIHelper
If ShlHlpr.IsSubscribed("http://test.microsoft.com/tst.cdf") Then
MsgBox "You're Subscribed!"
Else
MsgBox "You're not Subscribed!"
End If
End Sub
Please note that you must install the desktop update that comes with
Internet Explorer 4.0x in order to use the ShellUIHelper object.
Script - Using window.external.isSubscribed
The code below demonstrates how this can be done, using JavaScript
in an .htm page:
<SCRIPT>
if (window.external.isSubscribed("http://test.microsoft.com/tst.cdf"))
alert ("You are subscribed!");
else
alert ("You are NOT subscribed!");
</SCRIPT>
Cross-frame security rules apply to this script call. Script in a document
can only check to see if the user is subscribed to sites on the same
domain.
REFERENCES
Internet Client SDK documentation
Modification Type: | Minor | Last Reviewed: | 7/1/2004 |
---|
Keywords: | kbChannels kbcode kbhowto KB175504 |
---|
|