pdf reader in asp.net c# : Erase text from pdf SDK Library project winforms .net windows UWP Milos_DocumentManagement_DownloadFileAttachment1-part818

11
www.cod
e
-m
a
g
a
z
in
e
.com
M
i
chè
l
L
eroux 
Bustamante
mlb@ide
s
ign.net
Mich
è
l
e
L
e
roux Bust
a
m
a
nt
e
is 
C
hi
e
f Archit
e
ct of ID
e
sign Inc., 
Microsoft R
e
gion
a
l Dir
e
ctor 
for S
a
n Di
e
go, 
a
nd 
a
Microsoft 
MVP for 
C
onn
e
ct
e
d Syst
e
ms. 
At ID
e
sign Mich
è
l
e
provid
e
tr
a
ining, m
e
ntoring 
a
nd high-
e
nd 
a
rchit
e
ctur
e
consulting 
s
e
rvic
e
s focusing on sc
a
l
a
bl
e
a
nd s
e
cur
e
a
rchit
e
ctur
e
d
e
sign for .N
E
T, W
e
b s
e
rvic
e
s, 
int
e
rop
e
r
a
bility, f
e
d
e
r
a
t
e
s
e
curity sc
e
n
a
rios, 
C
a
rdSp
a
c
e
a
nd glob
a
li
z
a
tion 
a
rchit
e
ctur
e
Mich
è
l
e
p
a
rticip
a
t
e
s in 
Softw
a
r
e
D
e
sign R
e
vi
e
ws 
for products in th
e
Microsoft 
ro
a
dm
a
p, including W
C
F
C
a
rdSp
a
c
e
a
nd oth
e
r s
e
curity-
focus
e
d products. During 
th
e
B
e
t
a
1 ph
a
s
e
Mich
è
l
e
p
a
rticip
a
t
e
d in prototyping 
e
l
e
m
e
nts of th
e
C
a
rdSp
a
c
e
t
e
chnology for th
e
product 
t
e
a
m. Sh
e
is 
a
m
e
mb
e
r of th
e
Int
e
rn
a
tion
a
l .N
E
T Sp
e
a
k
e
rs 
Associ
a
tion (IN
E
TA), 
a
fr
e
qu
e
nt conf
e
r
e
nc
e
pr
e
s
e
nt
e
r, 
conf
e
r
e
nc
e
ch
a
ir for SD W
e
st, 
a
nd is fr
e
qu
e
ntly publish
e
in s
e
v
e
r
a
l m
a
jor t
e
chnology 
journ
a
ls. Mich
è
l
e
is 
a
lso on 
th
e
bo
a
rd of dir
e
ctors for IASA 
(Int
e
rn
a
tion
a
l Associ
a
tion of 
Softw
a
r
e
Archit
e
cts) 
a
nd 
a
Progr
a
m Advisor to U
C
SD 
E
xt
e
nsion. H
e
r l
a
t
e
st book 
is Learning W
C
F
O
’R
e
illy 
2007—s
e
e
h
e
r book blog h
e
r
e
www.thatindigogirl.
c
om
. R
e
a
ch 
h
e
a
mlb@ide
s
ign.net
or visit 
www.ide
s
ign.net
a
nd h
e
r m
a
in 
blog 
a
www.da
s
blonde.net
.
O
N
L
I
N
E
Q
U
I
C
K
I
D
0
8
0
4
0
3
2
Liv
e
from th
e
W
e
b! Bring th
e
Windows Liv
e
M
e
ss
e
ng
e
E
xp
e
ri
e
nc
e
to Your W
e
b Applic
a
tions
Th
e
c
oll
e
c
tiv
e
f
e
atur
e
s
of th
e
Window
s
Liv
e
M
e
s
s
e
ng
e
I
M Control, 
th
e
Window
s
Liv
e
M
e
s
s
e
ng
e
r Pr
e
s
e
n
c
e
AP
I
and th
e
Window
s
Liv
e
M
e
s
s
e
ng
e
r Library go 
b
e
yond th
e
s
impli
c
ity of a 
c
hat appli
c
ation, making it 
po
s
s
ibl
e
to 
e
mbra
c
e
thi
s
n
e
e
ra of 
s
o
c
ial n
e
tworking 
by l
e
v
e
raging your built-in 
Window
s
Liv
e
n
e
twork within any W
e
appli
c
ation.
Fa
s
t Fa
c
t
s
L
i
ve 
f
r
om 
t
he Web! 
B
r
i
ng 
t
he W
i
ndows 
L
i
ve Messenge
r
Expe
r
i
ence 
t
o You
r
Web App
l
i
ca
t
i
ons
Wi
n
d
o
w
s
Li
v
e
M
e
s
s
e
n
g
e
r
i
s
o
n
e
o
f
t
h
e
c
e
n
t
r
a
l
o
f
f
e
ri
n
g
s
n
e
s
t
l
e
d
a
m
o
n
g
a
s
u
i
t
e
o
f
p
r
o
d
u
c
t
s
a
n
d
s
e
r
v
i
c
e
s
u
n
d
e
r
Mi
c
r
o
s
o
f
t
s
Wi
n
d
o
w
s
Li
v
e
b
r
a
n
d
.
For
years
online
chat
has
been
progressively
and
swiftly
revolutionizing
how
you
communicate
with
your
friends,
family,
cowor
k
ers,
and
businesses
you
deal
with.
It
is
the
foundation
of
the
original
chat
room
concept
and
the
heart
of
instant
messaging
applications.
Online
chat—also
called
instant
messaging
or
just
“IM”—connects
people
for
one-to-one
or
group
chat,
for
social
networ
k
ing
purposes,
or
for
business
directives,
such
as
enabling
access
to
technical
support,
customer
services,
or
sales.
Now,
Windows
Live
Messenger
supports
a
rich
set
of
features
for
Web
applications
through
the
Windows
Live
Messenger
IM
Control,
the
Windows
Live
Messenger
Presence
A
PI,
and
the
Windows
Live
Messenger
Library.
The
collective
features
of
these
products
go
beyond
the
simplicity
of
a
chat
application,
ma
k
ing
it
possible
to
embrace
this
new
era
of
social
networ
k
ing
by
leveraging
your
built-in
Windows
Live
networ
k
within
any
Web
application.
The new suite of offerings within the Windows Live 
Messenger family support these Web-enabled sce-
narios as follows:
Windows
Live
Messen-
ge
r
IM
Con
t
r
ol:  Enables 
Web applications to show the 
online presence of a Windows 
Live ID account to visitors and 
allows those visitors to inter-
act with the account through a 
Web-based  instant  messaging 
control. This interaction can be 
anonymous or the visitor can 
identify themselves by name or 
by their Windows Live account.
Wi
n
dows
Live
Messe
n
ge
r
P
r
es-
e
n
ce
API: Enables site visitors 
to log in to their Windows Live 
ID account and enable Web ap-
plications to access their online 
presence. This facilitates non-
anonymous  interactions  with 
the IM Control.
Wi
n
dows
Live
Messe
n
ge
r
Lib
r
a
r
y: Makes it 
possible to build Web applications that inte-
grate with Windows Live Messenger with more 
granular control over the UI and underlying 
instant messaging features exposed to visitors.
E
xtending Windows Live Messenger features 
to the Web makes it possible for personal 
sites, community sites, and business appli-
cations to increase their reach 
and interactivity with visitors. 
For community sites such as 
your blog or other social net-
working sites, this could mean 
sharing your online messenger 
presence so that visitors can 
easily contact  you.  You can 
also supply fully functional or 
completely  customized  Web-
driven instant messaging fea-
tures from your site or Web 
applications to  enhance this 
interactive  experience.  You 
can apply the same ideas to 
business  applications  in  the 
form  of  supplying  technical 
support directly from the cor-
porate site or interacting with 
other departments or person-
nel. In either case, an important benefi t of Web-
enabled Windows Live Messenger is that it allows 
visitors that don’t use Windows Live Messenger 
to interact with other Windows Live Messenger 
users, without installing the Windows Live Mes-
senger Client.
Erase text from pdf - delete, remove text from PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# developers to use mature APIs to delete and remove text content from PDF document
pdf text remover; acrobat remove text from pdf
Erase text from pdf - VB.NET PDF delete text library: delete, remove text from PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Programming Guide to Delete Text from PDF File
how to copy text out of a pdf; how to erase text in pdf online
12
www.cod
e
-m
a
g
a
z
in
e
.com
The coming sections will explain how to work with 
the IM control, and then show you how to add value 
with the presence API.
F
eatures of the IM 
C
ontrol
You can host the Windows Live Messenger IM Con-
trol on any Web page. This allows visitors to reach 
you when you are logged in to the Windows Live 
Messenger client application. Visitors can see your 
online presence and, when you are online, they can 
send messages through the IM control while you re-
ceive them at your messenger client. What’s particu-
larly compelling about the IM control is that you can 
let anonymous visitors communicate with you—they 
don’t have to log in and they don’t have to have a 
Windows Live ID account. This is unlike the user 
experience with the messenger client, which requires 
all users to log in before they can send messages to 
one another. The IM control is perfect for enabling 
chat with visitors of your Web application to answer 
questions or discuss topics, without adding to your 
contact list. Since the IM control is Web-based, even 
non-messenger users can interact with you without 
installing the messenger client application to their 
machines.
You can share your online presence with the IM con-
trol in three different ways: a status icon, a button, or 
an IM window (see Fig
u
r
e
1). The status icon and 
button give you the freedom to preserve real estate 
on your Web page and still supply a way for visitors 
to chat with you. Visitors are presented with a new 
browser window when they click the status icon. The 
new window shows the full IM window ready to be-
While the IM control and presence API are the easi-
est to implement and do not require development 
experience, the Messenger Library provides a rich 
set of features that require developers to provide the 
UI and programmatically control all interactions 
with Windows Live Messenger. Each has their place 
in the community depending on the goals of your 
Web application. This article will explain when and 
how to incorporate the IM control, presence API, 
and Messenger Library in your Web applications—
while discussing common scenarios where each are 
distinctly useful.
It’s A
l
l
About 
O
n
l
i
ne Presence! 
Introduc
i
ng the W
i
ndows 
L
i
ve 
Messenger IM 
C
ontro
l
and Presence API
The Windows Live Messenger IM Control was re-
leased in November 2007. This control is a fantastic 
addition to a blog, a Web site, or any other space on 
the Web where you want to communicate your on-
line presence or allow visitors to communicate with 
you when you are signed-in to a Windows Live Mes-
senger client. Visitors can communicate with you 
anonymously, by a specifi ed name, or by fi rst logging 
in to their Windows Live account and thus mak-
ing it possible for you to add them to your contact 
list for future communications. The Windows Live 
Messenger Presence API compliments the IM con-
trol, released in December 2007. It lets you explicitly 
invite visitors to log in to their account and share 
their online presence so that your Web application 
can identify them. Both of these products are very 
easy for the non-developer to include on a Web page. 
Liv
e
from th
e
W
e
b! Bring th
e
Windows Liv
e
M
e
ss
e
ng
e
E
xp
e
ri
e
nc
e
to Your W
e
b Applic
a
tions
Figure 1: 
F
rom th
e
C
r
e
a
t
e
HTML p
a
g
e
in 
W
e
b S
e
ttings you 
c
a
n confi gur
e
th
e
IM control’s 
a
pp
e
a
r
a
nc
e
a
nd copy th
e
r
e
sulting HTML 
to 
a
ny W
e
b p
a
g
e
Th
e
Windows 
Liv
e
M
e
ss
e
ng
e
IM 
C
ontrol l
e
ts 
you sh
a
r
e
your 
pr
e
s
e
nc
e
a
a
st
a
tus icon, 
a
button, or by 
pr
e
s
e
nting 
a
n IM 
window.
Pau
l
B
i
rkbeck
paul.bir
k
be
c
k
@multiplied.
c
om
P
a
ul Birkb
e
ck is Dir
e
ctor of 
Softw
a
r
e
D
e
v
e
lopm
e
nt 
a
nd 
L
e
a
d Archit
e
ct 
a
t Multipli
e
M
e
di
a
C
orpor
a
tion 
(
www.multiplied.
c
om
). 
At Multipli
e
d M
e
di
a
P
a
ul l
e
a
ds th
e
d
e
v
e
lopm
e
nt 
e
ffort for th
e
ir fl 
a
gship product, 
Poynt 
(
www.m
y
po
y
nt.
c
om
)—
a
multim
e
di
a
loc
a
l s
e
a
rch s
e
rvic
e
th
a
t l
e
v
e
r
a
g
e
s Windows Liv
e
M
e
ss
e
ng
e
a
s its prim
a
ry 
d
e
liv
e
ry ch
a
nn
e
l. P
a
ul’s 
t
e
chnology 
e
xp
e
rtis
e
li
e
in building l
a
rg
e
e
nt
e
rpris
e
syst
e
ms for th
e
p
a
st 15 y
e
a
rs, 
focusing prim
a
rily on Microsoft 
t
e
chnologi
e
s. His curr
e
nt focus 
is in th
e
Windows Liv
e
product 
suit
e
including M
e
ss
e
ng
e
r, 
Virtu
a
E
a
rth, 
a
nd S
e
a
rch. P
a
ul 
h
a
s his M
C
SD.N
E
a
nd h
e
r
e
c
e
ntly st
a
rt
e
a
n
e
w .N
E
Us
e
G
roup in B
a
rri
e
O
nt
a
rio, 
C
a
n
a
d
a
. R
e
a
ch him 
a
paul.bir
k
be
c
k
@multiplied.
c
om
C# PDF Text Redact Library: select, redact text content from PDF
Free online C# source code to erase text from adobe PDF file in Visual Studio. How to Use C# Code to Erase PDF Text in C#.NET. Add necessary references:
delete text pdf; delete text in pdf file online
C# WinForms Viewer: Load, View, Convert, Annotate and Edit PDF
Draw PDF markups. PDF Protection. • Sign PDF document with signature. • Erase PDF text. • Erase PDF images. • Erase PDF pages. Miscellaneous.
how to delete text in pdf acrobat; how to delete text in pdf converter professional
13
www.cod
e
-m
a
g
a
z
in
e
.com
Liv
e
from th
e
W
e
b! Bring th
e
Windows Liv
e
M
e
ss
e
ng
e
E
xp
e
ri
e
nc
e
to Your W
e
b Applic
a
tions
Start by browsing to this URL: http://
s
etting
s
.me
s
s
en-
ger.li
v
e.
c
om/appli
c
ation
s
/WebSetting
s
.a
s
p
x
. You will be 
prompted to sign in to your Windows Live ID ac-
count (if you aren’t already signed-in) and presented 
with the Web Settings page where you can enable 
others to see your online presence on the Web. 
Fig
u
r
e
2 illustrates how to enable this. Once enabled, 
Web applications will be able to host HTML that al-
lows visitors to send you messages.
On the same Web Settings page there is an option 
to create the HTML that would host the IM control 
(see Fig
u
r
e
1). This is where you decide which type 
of online presence you want to share—in the form 
of status icon, button, or IM window. As you select 
each option, the page shows the appropriate HTML 
for the selection so you can review its appearance.
Lis
t
i
n
g
1 illustrates the HTML generated for each 
form of online presence, without any themes applied. 
All three pass parameters to the IMMe.aspx page, 
including a required invitee parameter which holds 
your messenger ID in the form:
[unique id]@apps.messenger.live.com
The unique ID is a hash that uniquely identifi es your 
messenger account. When visitors initiate a conversa-
tion using the IM control, this identity is used to di-
rect messages to your IM account, which you receive 
in the messenger client application if you are online.
gin a chat session. If you are online, the IM window 
is enabled so that visitors can send messages, other-
wise it is disabled. To set up, you will generate the ap-
propriate HTML for the IM control according to the 
choice of online presence you prefer to share within 
your Web application.
The IM control is supported by IE 6, IE 7, and Fire-
fox 2.0 on Windows or Mac OS. Aside from deciding 
how you would like to share your online presence 
with visitors, you can also personalize the control’s 
appearance and culture settings. When you generate 
the HTML for the control, you can choose a tem-
plate to initialize font and color properties to match 
your Web application’s appearance. The control is 
also localized to 32 languages, so by simply setting 
a property you can adjust the language presented to 
your visitors. This article will talk about the control 
HTML and related properties next.
G
enerating 
H
T
ML to Share 
O
nline Presence
It takes just a few minutes to get a Web page up and 
running with the IM control. The fi rst step is to en-
able your online presence and generate the HTML 
according to the type of online presence you want 
to show. The next step is to copy that HTML to 
any Web pages where you want to host the control. 
Then, let the chatting begin!
Live 
T
eam
S
teve 
G
ordon
Lead Software De
s
ign 
E
ngineer
St
e
v
e
'
s t
e
a
m is on point to 
e
xpos
e
th
e
rich c
a
p
a
biliti
e
of Windows Liv
e
M
e
ss
e
ng
e
a
nd 
C
ont
a
cts to th
e
full r
a
ng
e
of W
e
b d
e
v
e
lop
e
rs. Using 
controls th
a
t c
a
n b
e
quickly 
e
mb
e
dd
e
d into 
e
xisting W
e
sit
e
s or APIs th
a
t f
a
cilit
a
t
e
rich 
IM 
a
nd pr
e
s
e
nc
e
-
e
n
a
bl
e
d W
e
a
pplic
a
tions, d
e
v
e
lop
e
rs c
a
build pow
e
rful 
a
nd comp
e
lling 
e
xp
e
ri
e
nc
e
s for th
e
ir us
e
rs with 
minim
a
e
ffort.
St
e
v
e
h
a
s b
e
e
a
m
e
mb
e
of th
e
M
e
ss
e
ng
e
r t
e
a
m for 
thr
e
e
y
e
a
rs. During his t
e
nur
e
h
e
h
a
s h
a
d th
e
opportunity 
to impl
e
m
e
nt 
a
r
a
ng
e
of 
function
a
lity within th
e
s
e
rvic
e
how
e
v
e
r, h
e
is most 
e
xcit
e
a
bout 
e
n
a
bling d
e
v
e
lop
e
rs to 
l
e
v
e
r
a
g
e
th
e
pl
a
tform to cr
e
a
t
e
a
pplic
a
tions th
a
t d
e
light us
e
rs.
Figure 2: 
O
n th
e
Hom
e
p
a
g
e
in W
e
b S
e
ttings you must fi rst 
a
llow W
e
b sit
e
a
cc
e
ss to your m
e
ss
e
ng
e
r pr
e
s
e
nc
e
b
e
for
e
th
e
IM control c
a
n b
e
us
e
ful.
<!-- HTML for status icon -->
<a target="_blank" href="http://settings.messenger.live.com/
Conversation/IMMe.aspx?
invitee=[unique id]@apps.messenger.live.com&mkt=en-US">
<img style="border-style: none;" 
src="http://messenger.services.live.com/users/
[unique id]@apps.messenger.live.com/presenceimage?
mkt=en-US" width="16" height="16" /></a>
<!-- HTML for button -->
<script type="text/javascript" src="http://settings.messenger.live.
com/controls/1.0/
PresenceButton.js"></script>
<div
id="Microsoft_Live_Messenger_PresenceButton_[unique id]"
msgr:width="100"
msgr:backColor="#D7E8EC"
msgr:altBackColor="#FFFFFF"
msgr:foreColor="#424542"
msgr:conversationUrl="http://settings.messenger.live.com/
Conversation/IMMe.aspx?invitee=[unique id]@apps.messenger.live.
com&mkt=en-US"></div>
<script type="text/javascript" 
src="http://messenger.services.live.com/users/
[unique id]@apps.messenger.live.com/presence?mkt=en-
US&cb=Microsoft_Live_Messenger_PresenceButton_onPresence"></
script>
<!-- HTML for IM window -->
<iframe 
src="http://settings.messenger.live.com/Conversation/IMMe.aspx?
invitee=[unique id]@apps.messenger.live.com&mkt=en-US" 
width="300" height="300" style="border: solid 1px black; width
300px; height: 300px;" frameborder="0"></iframe>
Li
s
ting 1: Th
e
r
e
sulting HTML g
e
n
e
r
a
t
e
d for th
e
st
a
tus icon, button, 
a
nd IM window, with no th
e
m
e
a
ppli
e
d.
C# WPF Viewer: Load, View, Convert, Annotate and Edit PDF
Draw markups to PDF document. PDF Protection. • Add signatures to PDF document. • Erase PDF text. • Erase PDF images. • Erase PDF pages. Miscellaneous.
how to delete text from pdf; delete text pdf acrobat professional
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit PDF
Redact tab on viewer empower users to redact and erase PDF text, erase PDF images and erase PDF pages online. Miscellaneous. • RasterEdge XDoc.
delete text from pdf acrobat; how to erase text in pdf file
14
www.cod
e
-m
a
g
a
z
in
e
.com
Liv
e
from th
e
W
e
b! Bring th
e
Windows Liv
e
M
e
ss
e
ng
e
E
xp
e
ri
e
nc
e
to Your W
e
b Applic
a
tions
headerForeColor=0066A7&headerBackColor=8EBBD8&
menuForeColor=333333&menuBackColor=FFFFFF&
chatForeColor=333333&chatBackColor=FFFFFF&
chatDisabledColor=F6F6F6&chatErrorColor=760502&
chatLabelColor=6E6C6C" 
width="300" height="300" style="border: solid 1px 
black; width:300px; height:300px;"
frameborder="0"></iframe>  
Of course you can customize these values if the 
canned themes don’t meet your needs. At least the 
HTML gives you a head start. The point is that with 
just a few clicks on the Web Settings page you can 
create working HTML that you can copy and paste 
to any Web page. Although the examples in this ar-
ticle will be ASP.NET (.aspx pages), the resulting 
HTML is interoperable—for example it works on 
plain HTML pages (.htm and .html) or PHP (.php) 
to name a few alternatives.
Putting the IM 
C
ontrol to Work
After pasting the generated HTML for the status icon, 
button, or IM window to your Web application, visi-
tors will be able to chat with you when you are online. 
As mentioned earlier, when visitors click the status 
icon or button, the control launches a new browser 
window with the IM window shown in Figu
r
e
1 in-
side. Visitors can click the icon or button even if you 
are offl ine, but the IM window is disabled until you 
are online. Your online status will not update in the 
icon or button until the visitor refreshes the page.
When you log into your Windows Live Messenger 
Client, the IM window is dynamically updated with 
your online status without a browser refresh. To initi-
ate a conversation with you, visitors click the “Begin 
a conversation” link in the chat window.
Fig
u
r
e
3 illustrates the dialog fl ow for beginning a 
new conversation using the IM window. When visi-
tors start a conversation, they have three options for 
identifying themselves to you:
They can remain anonymous.
• 
They can provide their real name.
• 
The status icon, button, and IM window all show 
your messenger status using the presence API, which 
will be discussed shortly. All three also support the 
“mkt” property, which defaults to “en-US” but you 
can set it to any of 32 culture codes specifi ed here: 
http://m
s
dn2.mi
c
ro
s
oft.
c
om/en-u
s
/librar
y
/bb936685.a
s
p
x
When you select an alternate culture code, IM con-
trols show text in the requested language, which is 
important if you are using the IM control on a local-
ized Web application.
You can also customize the visual appearance of the 
IM control. Of course the status icon does not sup-
port customization since it merely displays your on-
line status icon, but you can select a theme for the 
button and IM window to fi t with your Web page 
color scheme. By default, the button supports a few 
properties that control the button’s appearance and 
supply invitee details to the button script imported 
by PresenceB
u
tton.js in the fi rst <script> statement:
msgr:width="100"
msgr:backColor="#D7E8EC"
msgr:altBackColor="#FFFFFF"
msgr:foreColor="#424542"
msgr:conversationUrl=
http://settings.messenger.live.com/Conversation/
IMMe.aspx?invitee=[unique id]@
apps.messenger.live.com&mkt=en-US
If you select a theme for the IM control, all forms of 
online presence will include additional properties to 
control the color scheme of the IM window when 
presented. These properties are included in the invi-
tee property setting as shown highlighted here for the 
IM window <iframe> settings:
<iframe src="http://settings.messenger.live.com/
Conversation/IMMe.aspx?invitee=
[your invitee ID here]@
apps.messenger.live.com&mkt=en-US&
useTheme=true&
foreColor=333333&backColor=E8F1F8&
linkColor=333333&borderColor=AFD3EB&
buttonForeColor=333333&buttonBackColor=EEF7FE&
buttonBorderColor=AFD3EB&
buttonDisabledColor=EEF7FE&
Figure 3: To st
a
rt 
a
n
e
w conv
e
rs
a
tion vi
a
th
e
IM window—id
e
ntify yours
e
lf, r
e
typ
e
th
e
C
APT
C
HA t
e
xt, 
a
nd s
e
nd your m
e
ss
a
g
e
.
C# HTML5 PDF Viewer SDK to view, annotate, create and convert PDF
setting PDF file permissions. Help C# users to erase PDF text content, images and pages online in ASP.NET. RasterEdge C#.NET HTML5
how to delete text from a pdf in acrobat; remove text watermark from pdf online
C# PDF Image Redact Library: redact selected PDF images in C#.net
redaction API to redact PDF images. Same as text redaction, you can specify custom text to appear over the image redaction area. How to Erase PDF Images in
pdf editor delete text; remove text from pdf acrobat
15
www.cod
e
-m
a
g
a
z
in
e
.com
Liv
e
from th
e
W
e
b! Bring th
e
Windows Liv
e
M
e
ss
e
ng
e
E
xp
e
ri
e
nc
e
to Your W
e
b Applic
a
tions
that the control can gain access to your online pres-
ence and do things like display your status icon and 
name. You can do the same for users that visit your 
Web application by inviting them to share their on-
line presence via the Web sign-up URL. This makes 
it possible to identify visitors by their messenger ID 
and use that to show their online presence informa-
tion for a personalized experience.
The following hyperlink will send the user to the Win-
dows Live ID sign-up page (websignup.aspx) to sign 
in, supplying a return URL (default.aspx) for the host 
application, and a privacy policy URL (privacypolicy.
aspx) so that users can verify trust:
<asp:HyperLink ID="lnkSharePresence" 
runat="server" NavigateUrl=
"http://settings.messenger.live.com/
applications/websignup.aspx?
returnurl=http://…/default.aspx&
privacyurl=http://…/privacypolicy.aspx">
Share Your IM Presence</asp:HyperLink>
The link directs users to http://login.li
v
e.
c
om, which is 
a page where they can sign in to their Windows Live 
ID account, if they aren’t already signed-in. The next 
page prompts them to approve sharing their online 
They can sign in to their Windows Live account 
• 
and use that identity.
The fi rst dialog in Fig
u
r
e
3 illustrates a visitor typing 
their real name, but they could as easily use the de-
fault “Visitor” or some other anonymous name. Visi-
tors can also sign in to their Windows Live ID ac-
count from this dialog, if they aren’t already signed-
in. Regardless of the visitor’s identity, the control will 
always present a HIP-CAPTCHA (Human Interac-
tive Proofs—Completely Automated Public Turing 
test to tell Computers and Humans Apart) image to 
prevent IM spamming. Once completed the IM win-
dow is ready for chat.
Once the visitor types a message and hits Send—
which is only possible if you are online—the control 
directs the message to your messenger client and 
you receive a message as you would from any other 
contact. If the visitor is not signed in to messenger, 
although the name they presented is in the conversa-
tion dialog title, their ID has this format:
[unique id]@anonymous.messenger.live.com
If the contact, signed-in to Windows Live ID or not, 
is sending you messages from the Web, their identity 
includes the (Web)
prefi
x
as shown in Fig
u
r
e
4. You 
have the option to add the contact to your list, but 
for anonymous visitors this has no real value.
The steps to set this all up are fairly trivial: enable 
sharing your online presence, generate HTML, host 
the HTML in your Web application, and wait for 
visitors to send you messages! What can enhance 
this experience is the presence API, which you can 
use to identify visitors to your Web application and 
to encourage them to log in to their Windows Live 
ID account before proceeding with chat.
Inviting 
V
isitors to Share 
O
nline Presence
When you generate HTML for the IM control, it 
uses your messenger ID in the invitee address so 
IM 
C
ontro
l
IM 
C
l
i
ent
Figure 4: 
C
ommunic
a
tions b
e
tw
e
e
n th
e
IM 
C
ontrol 
host
e
d on 
a
W
e
b sit
e
a
nd th
e
tr
a
dition
a
l m
e
ss
e
ng
e
cli
e
nt.
Figure 5: During th
e
Windows Liv
e
W
e
b sign-in proc
e
ss, us
e
rs 
a
r
e
a
sk
e
d to 
e
n
a
bl
e
th
e
ir pr
e
s
e
nc
e
a
nd to confi rm th
a
t th
e
y will sh
a
r
e
th
e
ir m
e
ss
e
ng
e
r ID with th
e
sit
e
th
e
a
r
e
visiting.
How to C#: Special Effects
Erase. Set the image to current background color, the background color can be set by:ImageProcess.BackgroundColor = Color.Red. Encipher.
how to delete text from a pdf reader; how to delete text from a pdf
Customize, Process Image in .NET Winforms| Online Tutorials
Include crop, merge, paste images; Support for image & documents rotation; Edit images & documents using Erase Rectangle & Merge Block function;
pdf editor online delete text; delete text pdf file
16
www.cod
e
-m
a
g
a
z
in
e
.com
Liv
e
from th
e
W
e
b! Bring th
e
Windows Liv
e
M
e
ss
e
ng
e
E
xp
e
ri
e
nc
e
to Your W
e
b Applic
a
tions
The presence API is a simple, HTTP-based API that 
exposes two queries about a particular messenger 
account: one for the status icon, another for a more 
detailed representation of the user’s presence. The 
URL syntax for a query is:
http://messenger.services.live.com/users/
[messenger id]/[resource]/[?queryparameters]
You can pass the messenger ID for any user, includ-
ing one retrieved from a call to the Web sign-up 
page discussed earlier. The messenger ID is in the 
form:
[unique id]@apps.messenger.live.com
The resource can be presenceimage or presence. A 
query for the presence image returns a URL for the 
status icon of the messenger account. You can use 
this to present a graphic representing if a user is 
online or not as follows:
<img id="imgStatusIcon" 
src="http://messenger.services.live.com/users/
[unique id]@apps.messenger.live.com/
presenceimage" />
A query for the presence details returns a JSON 
result, which includes the account’s messenger ID, 
the display name, and the status name and icon. 
The format of the JSON response is:
presence with the requesting host, as shown in Figu
r
e
5. If they accept, the page redirects to the return URL 
passing their messenger ID as a query string parame-
ter named “id”. If they decline, or if there is no privacy 
policy, the query string indicates this in the “result” 
parameter. Basically, the return URL is responsible 
for determining if the user approved sharing their on-
line presence.
The following code illustrates how to gather the que-
ry string parameters and process the various possible 
responses:
if (!this.IsPostBack)
{
string result = Request.QueryString["result"];
string id = Request.QueryString["id"];
if (!String.IsNullOrEmpty(result))
{
if ((result == "Accepted") && (id != null))
this.lblName.Text = "Presence ID: " + id;
else if (result == "Declined")
this.lblName.Text = "Presence unavailable.";
else if (result == "NoPrivacyUrl")
this.lblName.Text = "No privacy Url.";
}
}
You can use the messenger ID provided by sharing 
online presence to personalize the Web application, 
passing it to the presence API.
G
athering 
D
etails through the Presence API
The Windows Live Messenger IM Control leverages 
the Windows Live Messenger Presence API to dis-
play information about the control host (the invitee), 
such as their online status and name. You can also 
use the presence API directly from any Web page to 
identify visitors if they agree to share their presence 
with the requesting host. Together with the Web sign-
up URL, you can use the presence API to encourage 
visitors to sign in to their Windows Live ID account, 
share their online presence with the Web applica-
tion, and allow the application to identify the visitor 
in order to present personalized information about 
them, such as their online status and name.
<b><label id="lblName" ></label></b><br />
<b><img id="imgStatusIcon" /><label id="lblStatus"></label></b>
<script type="text/javascript" language="javascript">   
function displaypresencedetails(presence)
{
var statusIcon = document.getElementById('imgStatusIcon');
 statusIcon.src = presence.icon.url;
statusIcon.alt = presence.statusText;
statusIcon.style.border = 'none';
statusIcon.width = presence.icon.width;
statusIcon.height = presence.icon.height;
var status = document.getElementById('lblStatus');
status.innerText = presence.statusText;
var name = document.getElementById('lblName');
name.innerText = presence.displayName;
}
</script>
<script type="text/javascript" language="javascript"
src="http://messenger.services.live.com/users/
[messenger id hash]@apps.messenger.live.com/presence/?
cb=displaypresencedetails">
</script>
Li
s
ting 2: Proc
e
ssing th
e
JS
O
N r
e
spons
e
with 
a
J
a
v
a
Script c
a
llb
a
ck function.
The Messenger 
L
i
brary 
does not rep
l
ace the funct
i
ona
l
i
ty 
of the IM contro
l
s
i
nce 
i
t does not 
support anonymous conversat
i
ons, 
but 
i
t does make 
i
t poss
i
b
l
to bu
i
l
d a r
i
ch exper
i
ence 
for ex
i
st
i
ng W
i
ndows 
L
i
ve 
users w
i
th some very powerfu
l
custom
i
z
at
i
on poss
i
b
i
l
i
t
i
es.
.NET Imaging Processing SDK | Process, Manipulate Images
Provide basic transformation functions, like Crop, Rotate, Resize, Flip and more; Basic image edit function support, such as Erase Rectangle, Merge Block, etc.
erase text from pdf file; remove text watermark from pdf
17
www.cod
e
-m
a
g
a
z
in
e
.com
Liv
e
from th
e
W
e
b! Bring th
e
Windows Liv
e
M
e
ss
e
ng
e
E
xp
e
ri
e
nc
e
to Your W
e
b Applic
a
tions
NOTE:
A
t
t
h
e
t
ime
of
t
h
is
w
r
i
t
i
n
g,
t
h
e
Messe
n
ge
r
Lib
r
a
r
y
was
s
t
ill
i
n
be
t
a
a
n
d
n
o
t
ye
t
r
eleased.
Fo
r
t
h
e
la
t
es
t
s
t
a
t
u
s
a
n
d
SDK
u
pda
t
es
please
go
t
o
dev.
live.com
/
messe
n
ge
r
.
Using this SDK you can reproduce the messag-
ing functionality of Windows Live Messenger on 
the Web or customize it to fi t the business driv-
ers of the hosting Web application. The Messen-
ger Library does not replace the functionality of 
the IM control since it does not support anony-
mous conversations, but it does make it possible to 
build a rich experience for existing Windows Live 
users with some very powerful customization pos-
sibilities.
Why would you want to replicate messenger (cus-
tomized or not) on the Web
?
First and foremost it 
defi nitely increases the stickiness of your Web appli-
cation if visitors can interact with their social network 
without navigating away from the Web page to open 
the messenger client. In particular for full-screen ex-
periences such as online videos or games, accessing 
the chat window in place is also a huge convenience. 
Another important benefi t is the instant social net-
work that is available through the Windows Live ID 
contact list of a signed-in visitor. This simplifi es life 
for the visitor since their existing contacts are im-
mediately available to them—rather than building a 
new network for the Web application, they have an 
instant network in their Windows Live ID contacts. 
This also opens the door to interesting possibilities 
for the Web application to provide functionality to 
interact with that network.
The coming sections will explore the richness of this 
SDK, explain how to get set up to use it, and show 
you how to use the key features available to your 
Web applications that employ it.
D
eveloping with the Messenger Library
The Windows Live Messenger Library is a client-
side library written in JavaScript. Thus, any page in 
your Web application that leverages the Messenger 
Library must import messenger.js as follows:
<script src="http://settings.messenger.live.com/
api/1.0/messenger.js" type="text/javascript" 
language="javascript"></script>
From here, your job is to write code in JavaScript 
to access the features and functionality of the li-
brary. For example, to add the  SignInControl 
from the Messenger Library to a Web page, you 
would include both the Messenger Library script 
and another script containing a function to load 
the control. In the following example, when the 
page loads, it calls 
A
uthenticateUser() from the 
custom JavaScript library, MyMessengerScriptLi-
brary.js:
<body onload="AuthenticateUser()">
<script src="http://settings.messenger.live.com/
api/1.0/messenger.js" type="text/javascript" 
{
"status": "[messenger status]",
"icon": {
"height": 16,
"url": 
"http://settings.messenger.live.com/static/w13r2
/Conversation/img/[status icon fi lename].gif",
"width": 16
},
"statusText": "[localized messenger status]",
"id": "[messenger id]@apps.messenger.live.com",
"displayName": "[messenger display name]"
}
The best way to work with the JSON response is to 
provide a callback script function that can process 
the presence details. Lis
t
i
n
g
2 shows an example of 
this.
Why display the status of a user visiting your site
?
perfect example is a social networking site that uses 
Web signup to register users for their own personal 
space, and then subsequently stores their messenger 
ID to provide a personalized experience for the user. 
When they log in to their personal space on the Web, 
the application can show their messenger status (us-
ing the presence API) and provide a link to the IM 
window (using the IM control). This allows others 
visiting their personalized page to chat with them! In 
fact, Lis
t
i
n
g
1 shows this in the HTML for the button 
representation of the IM control.
K
i
ck 
i
t up a 
N
otch w
i
th the W
i
ndows 
L
i
ve Messenger 
L
i
brary
Based on the discussion thus far, you should gather 
that the Windows Live Messenger IM Control pro-
vides a quick and easy way for non-developers to en-
able their presence on the Web and is particularly 
useful for chatting with anonymous visitors. The 
Windows Live Messenger Presence API provides a 
way for visitors to log into their Windows Live ID ac-
count and identify themselves to the IM control and 
to the host application for personalization. Together 
these products enable interaction with a particular 
messenger account, specifi ed by the invitee, and al-
low non-Windows Live users to send messages with-
out installing the Windows Live Messenger Client.
The Windows Live Messenger Library extends this 
functionality by providing a rich SDK to build a cus-
tomized messenger client on the Web. The features 
supported by the Messenger Library include:
A simple sign-in control for authenticating mes-
• 
senger accounts.
Access to the signed-in user’s online presence 
• 
for personalization.
Access to the signed-in user’s contact list and 
• 
groups to replicate Messenger client functional-
ity on the Web.
A rich API for programmatically interacting 
• 
with the signed-in user’s contact list and groups; 
for sending and receiving messages; and for in-
teracting with conversations.
18
www.cod
e
-m
a
g
a
z
in
e
.com
Liv
e
from th
e
W
e
b! Bring th
e
Windows Liv
e
M
e
ss
e
ng
e
E
xp
e
ri
e
nc
e
to Your W
e
b Applic
a
tions
The Importance of 
Pr
i
vacy Po
l
i
c
i
es
As th
e
y s
a
y: with gr
e
a
t pow
e
a
lso com
e
s gr
e
a
t r
e
sponsibility. 
Th
e
priv
a
cy policy of th
e
Windows Liv
e
M
e
ss
e
ng
e
Libr
a
ry 
e
xplicitly forbids th
e
us
e
of th
e
inform
a
tion 
a
v
a
il
a
bl
e
through th
e
SDK for SPAM 
ov
e
r IM (SPIM). 
C
e
rt
a
inly 
a
ny 
sit
e
s th
a
t misus
e
this pow
e
will swiftly b
e
bl
a
cklist
e
d or 
b
e
com
e
soci
a
l outc
a
sts. 
Thus W
e
a
pplic
a
tions th
a
l
e
v
e
r
a
g
e
th
e
Windows Liv
e
M
e
ss
e
ng
e
r Libr
a
ry must 
provid
e
v
e
ry cl
e
a
r priv
a
cy 
polici
e
a
nd us
e
e
thic
a
busin
e
ss pr
a
ctic
e
a
s th
e
int
e
r
a
ct with th
e
inform
a
tion 
a
v
a
il
a
bl
e
to th
e
m.
Messenger Library. Call those functions from 
any Web page in the dependent application.
Copy the .js output of the compiled Script
#
li-
• 
brary to the Web application that will use the 
library. You can automate this with a post build 
step for convenience.
As for the coding experience, the previous code snip-
pet for the JavaScript function named authentica-
teUser() would look like this in the Script
#
library:
namespace MyMessengerScriptLibrary
{
public class Authentication
{
public static void authenticateUser()
{
SignInControl signinControl = new 
SignInControl("divSignIn", 
"http://.../PrivacyPolicy.htm", 
"http://.../Channel.htm", "");
}
}
}
To call this from a Web page, import the Script
#
library JavaScript fi le:
<script 
src="App_Scripts\MyMessengerScriptLibrary.js" 
type="text/javascript" 
language="javascript"></script>
To trigger the authenticateUser() JavaScript function 
when a Web page is loaded, you use the fully quali-
fi ed function name which includes the namespace 
and class name:
<body onload=
"MyMessengerScriptLibrary.Authentication.
authenticateUser()">
NOTE:
Keep
in
mind
t
ha
t
a
t
t
he
t
ime
of
t
his
w
r
i
t
-
ing,
t
he
Sc
r
ip
t
#
compile
r
changes
Pascal
case
func
t
ion
names
t
o
Camel
case
names.
In this article, all code to work with the Messenger 
Library is written in a Script
#
library, and thus will 
be illustrated in C
#
using the steps just described. 
The compiled JavaScript is ultimately what Web 
pages invoke at run time—and given the richness 
of the Messenger Library, using Script
#
is the key 
to developer productivity. The Windows Live Mes-
senger Library is a substantive library with over 70 
classes for building Messenger-enabled applications. 
The remainder of this article will discuss three key 
scenarios related to working with users and sign in, 
contacts, and conversations.
Signing In and Working with 
U
sers
To leverage the power of the Messenger Library, you 
must fi rst gain access to a user account. The library 
includes a single UI component, the SignInControl, 
language="javascript">
</script>
<script 
src="App_Scripts\MyMessengerScriptLibrary.js" 
type="text/javascript" language="javascript">
</script>
<div id="divSignIn">
</div>   
</body>
Inside MyMessengerScriptLibrary.js is the following 
JavaScript function creating a SignInControl instance 
passing the required parameters (to be discussed):
function AuthenticateUser() 
{
signinControl = new 
Microsoft.Live.Messenger.UI.SignInControl(
'divSignIn', 
'http://…/PrivacyPolicy.aspx', 
'http://…/Channel.aspx', '');
}
Although Visual Studio 2008 introduces support for 
JavaScript debugging, which is fantastic for script 
writers, building a complete library of functionality 
in JavaScript is usually a cumbersome process given 
the lack of rich IntelliSense and lack of knowledge 
for the correct syntax. Fortunately, there is a product 
called Script
#
that signifi cantly improves your pro-
ductivity for building rich JavaScript functionality for 
your ASP.NET applications.
T
urning 
C
D
evelopers into Scripting Ninjas 
with Script#
Client-side scripting is a necessity with today’s AJAX-
enabled applications—and working with the Messen-
ger Library adds yet another reason for developers 
to learn JavaScript. The problem is that many server-
side developers fi nd client-side scripting to be some-
thing of a dark art. The coolest thing about Script
#
is 
that C
#
developers can implement JavaScript with-
out writing JavaScript!
Script
#
is a C
#
compiler (at the time of this writ-
ing Visual Basic support does not exist) that gen-
erates JavaScript instead of MSIL. When you in-
stall Script
#
, it integrates into the Visual Studio 
IDE so that you can write libraries of functions in 
C
#
that are then compiled into JavaScript for deploy-
ment with your Web application. Here is a summary 
of the steps necessary to create a Script
#
library:
Install Script
#
, which also installs several Visu-
• 
al Studio templates for creating script libraries.
Create a new project using the Script
#
Class 
• 
Library template. For convenience, include this 
project in a solution that also contains your 
Web application.
Add a reference to Microsoft.Live.Messenger.
• 
dll, the core assembly containing the Messenger 
Library metadata.
Begin writing C
#
functions to interact with the 
• 
19
www.cod
e
-m
a
g
a
z
in
e
.com
Liv
e
from th
e
W
e
b! Bring th
e
Windows Liv
e
M
e
ss
e
ng
e
E
xp
e
ri
e
nc
e
to Your W
e
b Applic
a
tions
tication (see Figu
r
e
7). If they choose to be automati-
cally signed in, Windows Live ID Web Authentication 
(http://de
v
.li
v
e.
c
om/li
v
eid) is used to authenticate the 
user with the Windows Live ID cookie stored on the 
machine.
NOTE:
Windows
Live
ID
Web
Au
t
hen
t
ica
t
ion
is
a
f
r
ee
p
r
oduc
t
you
can
also
employ
in
you
r
Web
applica
t
ions
t
o
au
t
hen
t
ica
t
e
use
r
s
t
o
you
r
si
t
e
using
t
hei
r
Windows
Live
ID
accoun
t
s,
ins
t
ead
of
employing
a
cus
t
om
au
t
hen
t
ica
t
ion
mechanism.
While the SignInControl does provide core function-
ality for authentication, to fully leverage the Messen-
ger Library you will have to write code to interact 
with the authentication process. Lis
t
ing
3 includes 
the code necessary to create the SignInControl, in-
teract with the authentication process, access the au-
thenticated user’s identity, and, post sign in, access 
which handles authentication of users against the 
Windows Live ID domain. Once it authenticates the 
user, you can gain access to the user identity and in-
teract with the sign-in and sign-out process for that 
user. In addition, through the user identity you can ac-
cess many other details related to the user’s Windows 
Live ID account—which makes it possible to replicate 
the messenger client in a customized Web interface.
To add Windows Live ID sign-in functionality to a 
page, create an instance of the SignInControl located 
in the Microsoft.Live.Messenger.UI namespace of the 
Messenger Library. The control constructor has four 
parameters:
con
t
r
olId
: The name of the <div> on the page 
where the control should be rendered.
p
r
ivacyS
t
a
t
emen
t
U
r
l
: The URL of the Web ap-
plication’s privacy policy, explaining how the 
application will use the user’s account details.
channelU
r
l
 A  URL  for  a  page  containing 
JavaScript for safe cross-site scripting. See fol-
lowing reference for more details on how this 
secures  communication  between  third-party 
sites and the Windows Live ID domain: http://
m
s
dn2.mi
c
ro
s
oft.
c
om/en-u
s
/librar
y
/bb735305.a
s
p
x
.
ma
r
ke
t
: An optional culture code specifying 
which culture the control should use to display 
text.
You must write the code to create the SignInControl 
inside a JavaScript function called by the page (most 
likely during load)—as discussed in the previous sec-
tion. The UI representation of the SignInControl is 
shown in Figu
r
e
6. The user is presented with a Sign 
In button, which sends the user to the Windows Live 
ID login page. If the user has never signed in and 
saved a Windows Live ID cookie to the machine, 
they will be asked to log in as shown in Figu
r
e
6. If 
they have previously logged in and allowed their last 
authentication to be remembered, the SignInControl 
indicates that the user is already signed in.
The fi rst time that the user authenticates to Windows 
Live ID with their account, they are provided with 
a page where they can adjust their sign-in settings. 
Specifi cally, this determines if the user wants to be 
automatically or manually signed in for future authen-
About 
S
cr
i
pt#
Script# is 
a
w
e
ll docum
e
nt
e
d, 
w
e
ll m
a
int
a
in
e
d, 
a
nd w
e
ll 
support
e
d product—
a
nd th
e
b
e
st p
a
rt is th
a
t is it 
F
R
E
E
Script# w
a
s cr
e
a
t
e
d by Nikhil 
Koth
a
ri, 
a
softw
a
r
e
a
rchit
e
ct 
within th
e
D
e
v
e
lop
e
r Division 
a
t Microsoft. At th
e
tim
e
of 
this writing, Script# V
e
rsion 
4.5.0 h
a
s b
e
e
n r
e
l
e
a
s
e
a
nd is 
comp
a
tibl
e
with Visu
a
l Studio 
2005 
a
nd 2008.
You c
a
n downlo
a
d Script# 
a
nd 
r
e
a
d mor
e
a
bout th
e
product 
a
this sit
e
:
http://www.ni
k
hil
k
.net/
S
c
riptSharpIntro.a
s
p
x
Figure 6: Th
e
SignIn
C
ontrol 
(shown l
e
ft) 
a
llows us
e
rs to 
log in to th
e
ir Windows Liv
e
a
ccount 
a
t th
e
login.liv
e
.com 
sit
e
(shown right).
Figure 7: Us
e
rs h
a
v
e
a
n opportunity to confi gur
e
th
e
ir sign-in s
e
ttings with Windows Liv
e
ID. Th
e
W
e
b sit
e
cl
e
a
rly st
a
t
e
s wh
a
t th
e
r
e
qu
e
sting host 
a
pplic
a
tion will h
a
v
e
a
cc
e
ss to 
a
nd provid
e
a
link 
to th
e
priv
a
cy policy sp
e
cifi 
e
d in th
e
SignIn
C
ontrol constructor.
20
www.cod
e
-m
a
g
a
z
in
e
.com
Liv
e
from th
e
W
e
b! Bring th
e
Windows Liv
e
M
e
ss
e
ng
e
E
xp
e
ri
e
nc
e
to Your W
e
b Applic
a
tions
interact with messaging conversations with a particu-
lar set of contacts.
Working with 
C
ontacts
After a user logs in using the SignInControl, you can 
access the user’s contact list through the User in-
stance. The User class exposes three collection prop-
erties to access the user’s contact list:
Con
t
ac
t
s:
A ContactCollection containing all 
contacts in the list.
AllowedCon
t
ac
t
s:
 ContactCollection con-
taining only allowed contacts.
BlockedCon
t
ac
t
s:
 ContactCollection  con-
taining only blocked contacts.
You can use any of these ContactCollection instances 
to access a list of contacts as follows:
foreach (Contact c in userAccount.Contacts){…}
foreach (Contact c in 
userAccount.AllowedContacts){…}
foreach (Contact c in 
userAccount.BlockedContacts){…}
To organize contacts according to the groups they 
are associated with, you can also access a ContactC-
ollection exposed by the Groups property of the User 
instance:
user’s account details. Table
1 explains the purpose 
of each function shown in the listing.
Essentially, you must hook the SignInControl’s Au-
thenticationCompleted event in order to do anything 
useful with the user’s account. This provides you with 
access to the user identity, which you can use to create 
an instance of the User class from the Microsoft.Live.
Messenger namespace. This class is the root of the 
object model for the user’s account details including 
account settings, presence, contacts, conversations, 
and messaging. Before signing the user in, hook the 
SignInCompleted event of the User type so that you 
can verify a successful sign in prior to accessing prop-
erties of the user instance. You must also invoke the 
SignIn() function for the user instance to complete 
the sign-in process. The SignInCompleted event is 
fi red once the user completes sign in—passing a result 
of Success or Failure.
In Lis
t
ing
3, displayAccountDetails() is called upon 
successful sign in to update the page display and show 
account information. This listing shows only a subset 
of what the code sample illustrates, but Table
2 lists 
the type of information accessible through the User 
class hierarchy. Most of the functionality in a messen-
ger-enabled application can trace its roots back to the 
User class. Beyond sign-in and sign-out functionality, 
through this class you can access and modify proper-
ties of the user account such as DisplayName, Dis-
playPictureUrl, Status, and PersonalMessage; access 
the contact list; interact with the user’s mailbox to 
add Web e-mail functionality to a site; and create and 
F
u
n
c
t
i
o
n
N
a
m
e
D
e
s
c
ri
p
t
i
o
n
authenticateUser()
Creates the SignInControl and hooks its AuthenticationCompleted event so that you can 
retrieve the user identity during sign in.
signinControl_
AuthenticationCompleted()
Creates an instance of the User from the identity passed in; hooks the SignInCompleted 
event so that you can verify the status of the sign in; and invokes the SignIn() function to 
complete the sign-in process.
userAccount_SignInCompleted()
Verifi es the success or failure of the sign-in process and, if successful, displays the user 
account’s details.
displayAccountDetails()
Accesses the user account’s details through the User object model. 
Table 1: Th
e
functions us
e
d to h
a
ndl
e
SignIn
C
ontrol 
a
uth
e
ntic
a
tion 
a
nd 
a
cc
e
ss to us
e
a
ccount d
e
t
a
ils.
C
a
t
e
g
o
r
y
D
e
s
c
ri
p
t
i
o
n
Sign in and Sign out
Functions to sign in or sign out and events to interact with the process providing access to the user identity.
Account settings
Properties to interact with account settings related to privacy mode, the existence of a mailbox or special 
features such as mobile messaging, and other settings such as the ability to update the display name of the 
account.
Account details
Properties to interact with address settings, address capabilities, online status, presence details including 
display name and IM address, and the user’s identity.
Contacts
Access to the user’s contacts collection, the ability to add new contacts and access contact details, access to 
contact groups, and functionality to send messages to contacts.
Conversations
Functionality supporting creating new conversations with contacts, sending and receiving messages, and 
interaction with message generation and formatting. 
Table 2: A high-l
e
v
e
l look 
a
t th
e
pow
e
rful f
e
a
tur
e
a
v
a
il
a
bl
e
through th
e
Us
e
r typ
e
in th
e
Windows Liv
e
M
e
ss
e
ng
e
r Libr
a
ry.
Documents you may be interested
Documents you may be interested