Got it. 🙂 This works.
Private Sub attachPdfToItem(sItemNumber As String, lPdfFileIdInVault As Long)
Dim oItemSvc As ACW.ItemService = m_conn.WebServiceManager.ItemService
Dim oItem As ACW.Item = Nothing
oItem = oItemSvc.GetLatestItemByItemNumber(sItemNumber)
Dim lItemId As Long
lItemId = oItem.Id
Dim lItemIds(0) As Long
lItemIds(0) = lItemId
Dim lItemRevId As Long
lItemRevId = oItem.RevId
Dim lItemRevIds(0) As Long
lItemRevIds(0) = lItemRevId
Dim attmt As New ACW.Attmt
attmt.FileId = lPdfFileIdInVault
attmt.Pin = False
Dim oAttachments As ACW.ItemAttmt()
oAttachments = oItemSvc.GetAttachmentsByItemIds(lItemIds)
Dim iNumberOfExistingItemAttms As Integer
iNumberOfExistingItemAttms = oAttachments.Count
Dim attmts() As ACW.Attmt
If iNumberOfExistingItemAttms > 0 Then
Dim iNumberOfExistingAttms As Integer
iNumberOfExistingAttms = oAttachments(0).AttmtArray.Count
ReDim Preserve attmts(0 To iNumberOfExistingAttms)
Dim i As Integer
For i = 0 To iNumberOfExistingAttms - 1
attmts(i) = oAttachments(0).AttmtArray(i)
Next
attmts(iNumberOfExistingAttms) = attmt
Else
ReDim Preserve attmts(0)
attmts(0) = attmt
End If
Dim oEditedItems() As ACW.Item
oEditedItems = oItemSvc.EditItems(lItemRevIds)
oItemSvc.UpdateAttachments(lItemRevId, attmts)
oItemSvc.UpdateAndCommitItems(oEditedItems)
End Sub