FYI, Semoga bermanfaat.

Vavai
-----Original Message-----
From: Rod Stephens <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Date: Tue,  5 Jul 2005 05:41:29 +0000
Subject: VB6 Helper Newsletter

Have a great week and thanks for subscribing!

Rod
[EMAIL PROTECTED]
==========

    VB6 Contents:
1. New HowTo: Find the text displayed by a Window's descendant given its 
hierarchical window path
2. Updated HowTo: See what URL Internet Explorer is displaying
3. New HowTo: Get information about a Window's child hierarchy from its 
hWnd
4. New HowTo: Save an ADO Recordset's data into an XML file
5. New HowTo: Connect an ADO Recordset to an XML file located at a URL
6. Updated Tip: VB 6 Coding Style

    Both Contents:
7. New Links
8. Karen Watterson's Weekly Destinations and Diversions (D & D) 
==========
++++++++++
   <VB6>
++++++++++
==========
1. New HowTo: Find the text displayed by a Window's descendant given its 
hierarchical window path
http://www.vb-helper.com/howto_find_window_path_text.html
http://www.vb-helper.com/HowTo/howto_find_window_path_text.zip

Enter a target string and a window class path. The program searches for 
a window with title containing the target string. It then searches the 
window's child hierarchy to find a window that matches the specified 
class path. It displays the text contained by that child window.

The program uses the EnumWindows API function to look for a window with 
title containing the target text. When it finds one, it calls 
FollowChildPath to get the desired child window's text.

Public Function EnumProc(ByVal app_hwnd As Long, ByVal lParam As Long) 
As Boolean
Dim buf As String * 1024
Dim title As String
Dim length As Long
Dim txt As String

    ' Get the window's title.
    length = GetWindowText(app_hwnd, buf, Len(buf))
    title = Left$(buf, length)

    ' See if the title contains the target text.
    If InStr(title, g_Contains) > 0 Then
        ' This is the target. Search for the desired path.
        If FollowChildPath(txt, app_hwnd, 
LCase$("IEFrame/WorkerA/ReBarWindow32/ComboBoxEx32/ComboBox/Edit/")) 
Then
            frmWindowList.txtAddress.Text = txt
        Else
            frmWindowList.txtAddress.Text = "<not found>"
        End If

        ' Stop searching.
        EnumProc = 0
    Else
        ' Continue searching until we find it.
        EnumProc = 1
    End If
End Function

Function FollowChildPath follows a path of child classes starting from a 
specified parent window. For example, the path 
IEFrame/WorkerA/ReBarWindow32 looks for an IEFrame child, that has a 
WorkerA child, that has a ReBarWindow32 child. The path to find an 
Internet Explorer address is:

    IEFrame/WorkerA/ReBarWindow32/ComboBoxEx32/ComboBox/Edit

Function FollowChildPath finds the current window's class and verifies 
that its current path matches the target path so far. If the current and 
target paths match completely, then the function is done so it calls 
function WindowText to get the window's text value and stops searching.

If the current path matches the target path so far but is not finished, 
the function lists the window's children. It then calls itself 
recursively to search the children for the target path.

' Search this window's children for the specified path.
' If we find the path, return the final window's text
' through parameter window_text and return True.
Public Function FollowChildPath(ByRef window_text As String, ByVal 
window_hwnd As Long, ByVal target_path As String, Optional ByVal 
current_path As String = "") As Boolean
Dim txt As String
Dim buf As String
Dim buflen As Long
Dim child_hwnd As Long
Dim children() As Long
Dim num_children As Integer
Dim i As Integer

    ' Assume we will not find the target path.
    FollowChildPath = False

    ' Get the class name.
    buflen = 256
    buf = Space$(buflen - 1)
    buflen = GetClassName(window_hwnd, buf, buflen)
    buf = Left$(buf, buflen)

    ' Add the class name to the current path.
    current_path = current_path & LCase$(buf) & "/"

    ' See if we're on the right track.
    If Left$(target_path, Len(current_path)) <> current_path Then
        ' We are off the path. Don't search it.
    ElseIf target_path = current_path Then
        ' We are on the path and have reached the end.
        ' Set the window's text and stop searching.
        If buf = "Edit" Then
            window_text = WindowText(window_hwnd)
        Else
            window_text = "<not an Edit window>"
        End If

        FollowChildPath = True
    Else
        ' We are on the path but have not reached the end.
        ' Make a list of the child windows.
        num_children = 0
        child_hwnd = GetWindow(window_hwnd, GW_CHILD)
        Do While child_hwnd <> 0
            num_children = num_children + 1
            ReDim Preserve children(1 To num_children)
            children(num_children) = child_hwnd

            child_hwnd = GetWindow(child_hwnd, GW_HWNDNEXT)
        Loop

        ' Search the child windows.
        For i = 1 To num_children
            If FollowChildPath(window_text, children(i), target_path, 
current_path) Then
                ' We found the result. Stop searching.
                FollowChildPath = True
                Exit For
            End If
        Next i
    End If
End Function

Function WindowText uses the SendMessage API function to return a 
window's text.

' Return the text associated with the window.
Public Function WindowText(window_hwnd As Long) As String
Dim txtlen As Long
Dim txt As String

    WindowText = ""
    If window_hwnd = 0 Then Exit Function
    
    txtlen = SendMessage(window_hwnd, WM_GETTEXTLENGTH, 0, 0)
    If txtlen = 0 Then Exit Function
    
    txtlen = txtlen + 1
    txt = Space$(txtlen)
    txtlen = SendMessage(window_hwnd, WM_GETTEXT, txtlen, ByVal txt)
    WindowText = Left$(txt, txtlen)
End Function
==========
2. Updated HowTo: See what URL Internet Explorer is displaying
http://www.vb-helper.com/howto_find_ie_address.html
http://www.vb-helper.com/HowTo/howto_find_ie_address.zip

Use the EnumWindows and GetWindowText API functions to look for a window 
with title ending in " - Microsoft Internet Explorer".

Public Function EnumProc(ByVal app_hwnd As Long, ByVal lParam As Long) 
As Boolean
Dim buf As String * 1024
Dim title As String
Dim length As Long
Dim txt As String

    ' Get the window's title.
    length = GetWindowText(app_hwnd, buf, Len(buf))
    title = Left$(buf, length)

    ' See if the title contains the target text.
    If InStr(title, g_Contains) > 0 Then
        ' This is the target. Search for the desired path.
        If FollowChildPath(txt, app_hwnd, 
LCase$("IEFrame/WorkerA/ReBarWindow32/ComboBoxEx32/ComboBox/Edit/")) 
Then
            frmWindowList.txtAddress.Text = txt
        Else
            frmWindowList.txtAddress.Text = "<not found>"
        End If

        ' Stop searching.
        EnumProc = 0
    Else
        ' Continue searching until we find it.
        EnumProc = 1
    End If
End Function


Function FollowChildPath follows a path of child classes starting from a 
specified parent window. For example, the path 
IEFrame/WorkerA/ReBarWindow32 looks for an IEFrame child, that has a 
WorkerA child, that has a ReBarWindow32 child. The path to find an 
Internet Explorer address is:

    IEFrame/WorkerA/ReBarWindow32/ComboBoxEx32/ComboBox/Edit

Function FollowChildPath finds the current window's class and verifies 
that its current path matches the target path so far. If the current and 
target paths match completely, then the function is done so it calls 
function WindowText to get the window's text value and stops searching.

If the current path matches the target path so far but is not finished, 
the function lists the window's children. It then calls itself 
recursively to search the children for the target path.

' Search this window's children for the specified path.
' If we find the path, return the final window's text
' through parameter window_text and return True.
Public Function FollowChildPath(ByRef window_text As String, ByVal 
window_hwnd As Long, ByVal target_path As String, Optional ByVal 
current_path As String = "") As Boolean
Dim txt As String
Dim buf As String
Dim buflen As Long
Dim child_hwnd As Long
Dim children() As Long
Dim num_children As Integer
Dim i As Integer

    ' Assume we will not find the target path.
    FollowChildPath = False

    ' Get the class name.
    buflen = 256
    buf = Space$(buflen - 1)
    buflen = GetClassName(window_hwnd, buf, buflen)
    buf = Left$(buf, buflen)

    ' Add the class name to the current path.
    current_path = current_path & LCase$(buf) & "/"

    ' See if we're on the right track.
    If Left$(target_path, Len(current_path)) <> current_path Then
        ' We are off the path. Don't search it.
    ElseIf target_path = current_path Then
        ' We are on the path and have reached the end.
        ' Set the window's text and stop searching.
        If buf = "Edit" Then
            window_text = WindowText(window_hwnd)
        Else
            window_text = "<not an Edit window>"
        End If

        FollowChildPath = True
    Else
        ' We are on the path but have not reached the end.
        ' Make a list of the child windows.
        num_children = 0
        child_hwnd = GetWindow(window_hwnd, GW_CHILD)
        Do While child_hwnd <> 0
            num_children = num_children + 1
            ReDim Preserve children(1 To num_children)
            children(num_children) = child_hwnd
    
            child_hwnd = GetWindow(child_hwnd, GW_HWNDNEXT)
        Loop

        ' Search the child windows.
        For i = 1 To num_children
            If FollowChildPath(window_text, children(i), target_path, 
current_path) Then
                ' We found the result. Stop searching.
                FollowChildPath = True
                Exit For
            End If
        Next i
    End If
End Function

Function WindowText uses the SendMessage API function to return a 
window's text.

' Return the text associated with the window.
Public Function WindowText(window_hwnd As Long) As String
Dim txtlen As Long
Dim txt As String

    WindowText = ""
    If window_hwnd = 0 Then Exit Function
    
    txtlen = SendMessage(window_hwnd, WM_GETTEXTLENGTH, 0, 0)
    If txtlen = 0 Then Exit Function
    
    txtlen = txtlen + 1
    txt = Space$(txtlen)
    txtlen = SendMessage(window_hwnd, WM_GETTEXT, txtlen, ByVal txt)
    WindowText = Left$(txt, txtlen)
End Function
==========
3. New HowTo: Get information about a Window's child hierarchy from its 
hWnd
http://www.vb-helper.com/howto_find_window_hierarchy_info.html
http://www.vb-helper.com/HowTo/howto_find_window_hierarchy_info.zip

This program gets information about the classes that make up a root 
window with a title containing some target text. For example, you can 
look for a form with a title containing the text "Notepad."

When you enter the text to find and click the Find Windows button, the 
program saves the target text in the global variable g_Contains and then 
calls the EnumWindows API function to enumerate the system's windows.

' Start the enumeration.
Private Sub cmdFindWindows_Click()
    g_Contains = txtContains.Text
    EnumWindows AddressOf EnumProc, 0
End Sub

Subroutine EnumProc examines the windows. It uses the GetWindowText API 
function to get the window's title and uses InStr to see if the title 
contains the target text. If it does, the routine uses function 
GetWindowStructure to get information about the window's children.

Public Function EnumProc(ByVal app_hwnd As Long, ByVal lParam As Long) 
As Boolean
Dim buf As String * 1024
Dim title As String
Dim length As Long
Dim txt As String

    ' Get the window's title.
    length = GetWindowText(app_hwnd, buf, Len(buf))
    title = Left$(buf, length)

    ' See if the title contains the target text.
    If InStr(title, g_Contains) > 0 Then
        ' Display the window's structure.
        frmWindowList.txtResults.Text = GetWindowStructure(app_hwnd)

        ' Stop searching.
        EnumProc = 0
    Else
        ' Continue searching til find it.
        EnumProc = 1
    End If
End Function

Function GetWindowStructure uses the GetClassName API function to get 
the window's class name. If the class is Edit, then it also calls 
function WindowText to get the text the window is displaying.

The function then makes a list of the window's children and recursively 
calls itself for each.

' Search this window and display information about its children.
Public Function GetWindowStructure(window_hwnd As Long, Optional ByVal 
Indent As String = "") As String
Dim txt As String
Dim buf As String
Dim buflen As Long
Dim child_hwnd As Long
Dim children() As Long
Dim num_children As Integer
Dim i As Integer

    ' Get the class name.
    buflen = 256
    buf = Space$(buflen - 1)
    buflen = GetClassName(window_hwnd, buf, buflen)
    buf = Left$(buf, buflen)

    ' Display the window's class.
    txt = Indent & buf

    ' See if we found an Edit object.
    If buf = "Edit" Then txt = txt & " (" & WindowText(window_hwnd) & 
")"
    txt = txt & vbCrLf

    ' Search the children.
    ' Make a list of the child windows.
    num_children = 0
    child_hwnd = GetWindow(window_hwnd, GW_CHILD)
    Do While child_hwnd <> 0
        num_children = num_children + 1
        ReDim Preserve children(1 To num_children)
        children(num_children) = child_hwnd

        child_hwnd = GetWindow(child_hwnd, GW_HWNDNEXT)
    Loop

    ' Get information on the child windows.
    For i = 1 To num_children
        txt = txt & GetWindowStructure(children(i), Indent & "    ")
    Next i

    GetWindowStructure = txt
End Function

Function WindowText uses the SendMessage API function to get a window's 
text.

Public Function WindowText(window_hwnd As Long) As String
Dim txtlen As Long
Dim txt As String

    WindowText = ""
    If window_hwnd = 0 Then Exit Function
    
    txtlen = SendMessage(window_hwnd, WM_GETTEXTLENGTH, 0, 0)
    If txtlen = 0 Then Exit Function
    
    txtlen = txtlen + 1
    txt = Space$(txtlen)
    txtlen = SendMessage(window_hwnd, WM_GETTEXT, txtlen, ByVal txt)
    WindowText = Left$(txt, txtlen)
End Function
==========
4. New HowTo: Save an ADO Recordset's data into an XML file
http://www.vb-helper.com/howto_recordset_to_xml.html
http://www.vb-helper.com/HowTo/howto_recordset_to_xml.zip

Thanks to James Hansen ([EMAIL PROTECTED]).

When you click the "Make XML File" button, the program uses the 
following code to make such an XML file. It opens an ADO Recordset 
connected to a normal Access database file. It then creates an XML 
DOMDocument object and calls the Recordset's Save method, passing it the 
DOMDocument to save the Recordset's data into the document. It then 
calls the DOMDocument object's Save method to write the document's XML 
data into a file.

Private Sub cmdMakeXmlFile_Click()
Dim db_name As String
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim dom_document As DOMDocument

    ' Get the database's name.
    db_name = txtDatabase.Text

    ' Open the connection.
    Set conn = New ADODB.Connection
    conn.ConnectionString = _
        "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Persist Security Info=False;" & _
        "Data Source=" & db_name
    conn.Open

    ' Open the Recordset.
    Set rs = conn.Execute("SELECT * FROM Books ORDER BY Title")

    ' Save the data into a DOMDocument.
    Set dom_document = New DOMDocument
    rs.Save dom_document, adPersistXML

    rs.Close
    conn.Close

    ' Save the XML data into an XML file.
    db_name = Replace$(db_name, ".mdb", ".xml")
    dom_document.Save db_name
    MsgBox "Now move the XML file to a HTTP site."
End Sub

See also the following example.

For information on using XML in Visual Basic .NET, see my book <A 
HREF="http://www.vb-helper.com/xml.htm";>Visual Basic .NET and XML</A>.
==========
5. New HowTo: Connect an ADO Recordset to an XML file located at a URL
http://www.vb-helper.com/howto_url_recordset.html
http://www.vb-helper.com/HowTo/howto_url_recordset.zip

Thanks to James Hansen ([EMAIL PROTECTED]).

First, create an XML file containing the data in ADO's saved XML format. 
(See the previous example.)

After you create the XML file, copy it to your Web server. (For testing 
purposes, you can also connect to the document on your file system.)

Then when you click the "Get XML Data" button, the program uses the 
following code to read the XML data from the URL where you copied it. It 
creates a Recordset and opens it, indicating the URL as the data source. 
The program then loops through the Recordset, displaying its data.

Private Sub cmdGetXmlData_Click()
Dim rs As ADODB.Recordset
Dim i As Integer

    Set rs = New ADODB.Recordset
    rs.Open txtUrl.Text, "Provider=MSPersist;", _
         adOpenStatic, adLockReadOnly

    rs.MoveLast ' Can find little errors that can crop up.
    rs.MoveFirst

    Debug.Print "********************"
    Do Until rs.EOF
        For i = 0 To rs.Fields.Count - 1
            Debug.Print rs.Fields(i) & " ";
        Next i
        Debug.Print
        rs.MoveNext
    Loop

    rs.Close
    MsgBox "Ok"
End Sub

Note that generally you will want to make the XML file read-only on your 
Web server so people running such a program can read it but not midify 
it.

For information on using XML in Visual Basic .NET, see my book <A 
HREF="http://www.vb-helper.com/xml.htm";>Visual Basic .NET and XML</A>.
==========
6. Updated Tip: VB 6 Coding Style
http://www.vb-helper.com/tip_vb6_coding_styles.html

(If you have other suggestions to add, email them to me at 
[EMAIL PROTECTED])

WJK ([EMAIL PROTECTED]) had these additions. If the formatting is 
messed up in your mail application, see the online version.

Here's some commented code by WJK showing some of his standards. 
Private Sub DoesSomething(inString$, inInteger%) 
Dim Integer%, String$
    ' I always use the variable types
    ' I know people disagree with this.
    ' I find it useful and better for me.
    ' Throughout the code I use the symbol.
    ' Always be aware of variable type.
    ' I do not use the variant variable type very often.
    ' In addition I use gVar to indicate Global Variables
    ' pVar to indicate module level public variables
    ' I always use txtTextBox, lblLabel, cbCheckbox
    ' etc. for controls

    ' An error statement is required at start of subroutine after Dim
    ' statement. Either format depending on subroutine, errs always 
handled.
    On Error Resume Next
    On Error GoTo DoesSomething_Error 
    ' Name of err statement is always:
    '     subroutine_name+_Error

    ...sub code here...

    Exit Sub

DoesSomething_Error:
    ' Labels are always to the left. Try to limit goto labels to one 
    ' per subroutine... Goto statement can usually be avoided.

    ' I have some global err handlers, but many subs use this format.
    Select Case Err.Number
        Case xxx  ' This handles specific occurrences, I try to write 
code to handle 
                  ' before error occurs, code executes faster when you 
do this. 

        Case Else ' Always an else case for handling most err types.
    End Select

    Resume Next
End Sub

And here are some other tips by WJK. 

* Always try to build a reusable subroutine to accomplish a given task. 
Never write the same inline code over and over. This makes your code 
easier to maintain and update (fix one, you fix all) 

* I like the use of the : character only when used with a short if 
statement: 
    IF A=B Then B=C : A=C

* The inline if statement can be of tremendous use. 

*     .Fields("Labor_Total_Cost") = Round((.Fields("Quantity") * _

*         IIf(.Fields("Labor"), 1, 0) * .Fields("Labor_Unit_Price") * _
        .Fields("THE_FACTOR") * Currency_Value * gCCI_Labr), 2)
The inline if statement can eliminate having many additional 
intermediate variables. If it can be done without inline if 
statements.... I do it that way. 

* Working with record sets, I almost never use the notation: 
    recordset.fields(1) = xxxx
Instead I use: 
    recordset.fields("FieldName")= xxxx
It makes the code self documenting. 
==========
++++++++++
  <Both>
++++++++++
==========
7. New Links
http://www.vb-helper.com/links.html

SearchVB.com
http://searchvb.techtarget.com
Tons of news and information about VB topics: design, database 
programming, XML, VBA, .NET, ActiveX, etc.

MSD2D.com
http://www.MSD2D.com/
VB .NET, C#, and ASP.NET tips, tutorials, etc. Includes message boards 
and a .NET tutorials database.
==========
8. Karen Watterson's Weekly Destinations and Diversions (D & D) 
http://www.vb-helper.com/karens_weekly_diversions.html

Readable/Watchable
    - As always, start here 
<http://msdn.microsoft.com/recent/default.aspx>. Then check out 
gotdotnet.com's user samples 
<http://www.gotdotnet.com/Community/UserSamples/>. 
    - John O'Byrne's article describing his TaskbarNotifier 
<http://www.codeproject.com/cs/miscctrl/taskbarnotifier.asp>, a .NET 
class which lets you display an MSN Messenger-like animated popup with a 
skinned background. 
    - The July issue of Maximum PC has an awesome feature, The Ultimate 
Do-It-Yourself Guide <http://www.maximumpc.com/this_month/> with 27 
how-to do it yourself projects. The article on 64-bit Windows is also 
worth the read. 
    - Read about the three dozen bugs affecting VB developers that were 
fixed in SP6 
<http://support.microsoft.com/default.aspx?scid=kb;en-us;834001>. 
Download the SP 
<http://msdn.microsoft.com/vstudio/downloads/updates/sp/>. 
    - Michael Brisset's Getting Started with Unit Test Generation 
<http://blogs.msdn.com/vstsqualitytools/archive/2005/06/29/434027.aspx> 
(in VSTS 2005). 

Selected KB articles
    - 328587 How to create a DTS custom task with VB.NET.  
<http://support.microsoft.com/default.aspx?scid=kb%3ben-us%3b328587>
    - 891406 The IsMissing function may not work correctly when you 
declare a function with a parameter that is both optional and of the 
Variant data type in VB6.  
<http://support.microsoft.com/default.aspx?scid=kb%3ben-us%3b891406>
    - 891748 How to authenticate the Inbox in Exchange Server 2003 with 
forms-based authentication enabled with VB.NET.  
<http://support.microsoft.com/default.aspx?scid=kb%3ben-us%3b891748>
    - 312839 How to send e-mail without using SQL Mail in SQL Server.  
<http://support.microsoft.com/default.aspx?scid=kb%3ben-us%3b312839>
    - 328587 How to create a DTS custom task with VB.NET.  
<http://support.microsoft.com/default.aspx?scid=kb%3ben-us%3b328587>
    - 870617 How to add or modify licenses in SQL Server 2000.  
<http://support.microsoft.com/default.aspx?scid=kb%3ben-us%3b870617>
    - 322385 SQL Server support in a hyper-threaded environment.  
<http://support.microsoft.com/default.aspx?scid=kb%3ben-us%3b322385>

Downloadable
    - William Steele's source code for a Toast app 
<http://www.wjsteele.com/clickonce.zip>. Related: info about the app 
<http://blogs.msdn.com/wsteele/>. 
    - FileZilla <http://sourceforge.net/projects/filezilla/> - free FTP 
client. 
    - XSDObjectGen 
ails.aspx?FamilyID=89E6B1E5-F66C-4A4D-933B-46222BB01EB0&displaylang=en>. 
Takes an XSD schema as input and generates sample code showing how to 
mark up C# and VB.Net classes so that, when serialized with the XML 
serializer, the resulting XML will be valid according to the original 
schema. 
    - Text editor for Windows Mobile 2003 
<http://www.microsoft.com/downloads/details.aspx?FamilyID=9A0C0EDE-601C-4
662-9839-BA8CD7B736D7&displaylang=en>. 

    - SnapFiles' Restoration utility 
<http://www.snapfiles.com/get/restoration.html> - undelete from USB 
devices, for example. 

Browsable
    - MVP Maarten Struys' DotNETForDevices.com site 
<http://dotnetfordevices.com/>. Sign up for Maarten's newsletter, 
download code snippets, etc. (You might also want to watch a replay of 
his June 28 Webcast on issues involved with multithreading on mobile 
devices.) 
    - Public Integrity <http://www.publicintegrity.org/> ("Investigative 
Journalism in the Public Interest"). 
    - MIL-STDs 
<http://www.dscc.dla.mil/Programs/MilSpec/default.asp?DocTYPE=STD>. 
    - Jon Udell's excellent 11/22/04 blog entry on software factories 
<http://weblog.infoworld.com/udell/2004/11/22.html> with tons of good 
links, and a conversation with Ward Cunningham and Jack Greenfield. 
    - Wener Moise's blog - Musings on .NET, PDC, Technolgy, 
Entrepreneurship and Life <http://wesnerm.blogs.com/net_undocumented/>. 
    - Snapfiles' freeware <http://www.snapfiles.com/Freeware/>. 
    - US Senate site <http://www.senate.gov/>. Related: Interview with 
Richard Baker <http://www.q-and-a.org/Program/index.asp?ProgramID=1026>, 
the US Senate Historian. 

Travelable
    - Comic-Con <http://www.comic-con.org/index.php>, July 14-17 in San 
Diego. 
    - PDC05 <http://msdn.microsoft.com/events/pdc/>, Sept 13-16 in LA. 

Heads Up
    - Watch an architecture webcast, get a free book 
<http://www.architecturewebcasts.com>. 
    - Sunset alert! In the July issue of "Maximum PC," Watch Dog reports 
that Quicken only supports the current and past two versions online. 
Microsoft Money offers two years online support. The remedy? Upgrade, of 
cour$e. 

Jargon Alert
    - manwha - Korean version of manga. 
    - rapture theology - popularized by the popular "Left Behind" series 
of novels by Tim La Haye. 
    - ROC - Return on Customer, according to Don Peppers and Martha 
Rogers, in their latest book. 
    - ABI - Automated Broker Interface, Advanced Bus Interface, 
Application Binary Interface, Adaptive Brain Interface. 
    - SPOMF 
<http://www.cotsjournalonline.com/home/article.php?id=100330> - 
Symmetric Phase Only Matched Filter (method for detecting a known object 
in an image.) 
    - EPIC <http://www.epic-sbc.org/> - Embedded Platform for Industrial 
Computing. 
    - poilu <http://en.wikipedia.org/wiki/Poilu> (hairy one) - French 
equivalent of grunt. 

Misc
    - Interesting article on the rise of the creative class 
<http://www.fastcompany.com/subscr/96/open_cof.html>. Dan Pink ("A Whole 
New Mind" argues that the future will belong to creators and 
empathizers, driven by abundance, Asia, and automation. 
    - The July issue of Fast Company 
<http://www.fastcompany.com/subscr/96/open_boss.html> had several other 
fascinating articles, including an interview with GE CEO Jeff Immelt and 
a surprisingly interesting article on Cirque du Soleil (good sidebar by 
Blue Ocean Strategy co-author Renee Mauborgne, on innovation). One of 
Immelt's observations: management literature has focused on how to. "I 
think we're now in the what-and-where generation." The July feature, "Is 
your Boss a Psychopath," is interesting, too. 
    - Americans reportedly consume an average of 66 pounds of beef/year. 

    - The most popular cosmetic surgery for men is liposuction. Average 
cost: $4117. Eyelid surgery, nose jobs, male breast reduction, and hair 
transplantation round out the top five. 
    - Review of Dean Hamer's "God Gene." Recommended background music 
<http://www.cyberhymnal.org/> (select autoplay). 
    - Pinnacle's July newsletters are all online now 
<http://www.pinpub.com>, which means that even non-subscribers can read 
the feature article of each newsletter free until next month's contents 
are posted. So...that means you can read 1) Carl Ganz's feature on using 
Office Web Components in VBD (Disclaimer - I'm the editor) 2) Pete 
Rodriguez' "Roll Your Own Masked Edit Custom Control with ASP.NET" in 
Visual Studio .NET Developer, 3) MVP Hilary Cotter's feature on what to 
expect in SQL Server 2005's Full Text Search in SQL Server Professional 
(I'm also the editor of SSPro), and 4) Paul Millennas' excellent Smart 
Access article on adding color to otherwise "battleship grey" buttons in 
Access. 
    - NY Times science articles <http://www.nytimes.com/pages/science/>. 

    - Crop, grass, vegetable, and weed seeds 
<http://www.ca.uky.edu/agripedia/agmania/seedid/>. 
    - Photographic archive of Gary, Indiana, steel plant 
<http://www.dlib.indiana.edu/collections/steel/>. 
==========
Archives:
    http://www.topica.com/lists/VBHelper
    http://www.topica.com/lists/VB6Helper
    http://www.topica.com/lists/VBNetHelper
    
http://www.vb-helper.com/cgi-bin/mojo/mojo.cgi?flavor=archive&list=VB_Hel
per_Newsletter


Post questions at:
    http://www.topica.com/lists/VBHelperQA

--^----------------------------------------------------------------




Untuk keluar dari millis ini, kirim email kosong ke:
[EMAIL PROTECTED]

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/Programmer-VB/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Kirim email ke