Ok @sam ,
I assume you want to use the center axis of the hole? A constraint is not actually using the holefeature, and even if it were you'd have to create a proxy for that aswell... If you want to create a mate constraint of the center axis of a hole and a face, you'd have to get a proxy of the face just as you did. Then you must get a proxy for the face created by the hole (The cylindrical face) and use that. You cannot just use it without specifying the inferredtype though. In this case we want to use the center axis of the face, so the inferredtype should be kInferredLine.
I put together a quick ilogic rule for you to demonstrate this. Make an assembly containing part occurrences and name them A and B in the browser. Make sure occurrence B has a hole in it. Then run this rule in your assembly.
Dim oAsm As AssemblyDocument = ThisDoc.Document
Dim oAsmDef As AssemblyComponentDefinition = oAsm.ComponentDefinition
Dim oOcc1 As ComponentOccurrence = oAsmDef.Occurrences.ItemByName("A")
Dim oOcc2 As ComponentOccurrence = oAsmDef.Occurrences.ItemByName("B")
Dim oPlaneProx As WorkPlaneProxy
oOcc1.CreateGeometryProxy(oOcc1.Definition.WorkPlanes(1), oPlaneProx)
Dim oHoleFaceProx As FaceProxy
oOcc2.CreateGeometryProxy(oOcc2.Definition.Features.HoleFeatures(1).Faces(1), oHoleFaceProx)
oAsm.SelectSet.Select(oHoleFaceProx)
oAsmDef.Constraints.AddMateConstraint(oPlaneProx, oHoleFaceProx, 0, InferredTypeEnum.kNoInference, InferredTypeEnum.kInferredLine)
I hope this helps 🙂