HOWTO: Determining Whether a User Is Subscribed to a ChannelLast reviewed: January 19, 1998Article ID: Q175504 |
The information in this article applies to:
SUMMARYWith 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 INFORMATIONThis article describes how to check a subscription from C++, Visual Basic, and script.
C++ - using ISubscriptionMgr::IsSubscribedThe 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
Script - Using window.external.isSubscribedThe 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.
REFERENCESInternet Client SDK documentation
Keywords : iegeneral kbcode Technology : kbInetDev Version : WINDOWS:4.0,4.01 Platform : WINDOWS Issue type : kbhowto |
================================================================================
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |