Thanks!
This worked great once I started mucking with the mask to show the part of the image that needed to be visible but semitransparent. For posterity:
BITMAPHANDLE overlayImage;
L_INT err =
L_CreateBitmap(&overlayImage,sizeof(BITMAPHANDLE),
TYPE_CONV,BITMAPWIDTH(pImage),BITMAPHEIGHT(pImage),
8,ORDER_BGR,NULL,
pImage->ViewPerspective,NULL,NULL);
if (err == SUCCESS)
{
// Transparent color
L_FillBitmap(&overlayImage,RGB(0,255,0));
HDC hDc = L_CreateLeadDC(&overlayImage);
// Do my drawing to the dc using a non-green color
L_DeleteLeadDC(hDc);
// Now create the mask
BITMAPHANDLE overlayMask;
L_CopyBitmap(&overlayMask,&overlayImage,sizeof(BITMAPHANDLE));
// Make visible area
L_SetBitmapRgnColor(&overlayMask,RGB(0,255,0),L_RGN_SETNOT);
L_FillBitmap(&overlayMask,RGB(opacity,opacity,opacity));
L_FreeBitmapRgn(&overlayMask);
// Make mask area
L_SetBitmapRgnColor(&overlayMask,RGB(0,255,0),L_RGN_SET);
L_FillBitmap(&overlayMask,RGB(0,0,0));
L_FreeBitmapRgn(&overlayMask);
// Now blend mask,overlay and destination
L_FeatherAlphaBlendBitmap(pImage,0,0,
BITMAPWIDTH(pImage),BITMAPHEIGHT(pImage),
&overlayImage,0,0,&overlayMask,0,0);
L_FreeBitmap(&overlayImage);
L_FreeBitmap(&overlayMask);