D3DXPlaneIntersectLine()函数的使用说明没看懂,该怎么处理

D3DXPlaneIntersectLine()函数的使用说明没看懂
这个函数的说明是这样的:
D3DXPlaneIntersectLine
Finds the intersection between a plane and a line.
D3DXVECTOR3 * D3DXPlaneIntersectLine(
  D3DXVECTOR3 * pOut,
  CONST D3DXPLANE * pP,
  CONST D3DXVECTOR3 * pV1,
  CONST D3DXVECTOR3 * pV2
);
Parameters
pOut
[in, out] Pointer to a D3DXVECTOR3 structure, identifying the intersection between the specified plane and line.
pP
[in] Pointer to the source D3DXPLANE structure.
pV1
[in] Pointer to a source D3DXVECTOR3 structure, defining a line starting point.
pV2
[in] Pointer to a source D3DXVECTOR3 structure, defining a line ending point.
Return Values
Pointer to a D3DXVECTOR3 structure that is the intersection between the specified plane and line.
Remarks
If the line is parallel to the plane, NULL is returned.

这个函数是寻找一条线段(从参数上看,“line”应当理解成“线段”才对吧)和一个平面的交点的,它的返回值是一个指针,它的第一个参数是输出值的指针。
我的问题在最后一行:它说“如果线段与平面平行,函数将返回NULL”,这种情况下输出值是什么?
如果线段与平面不平行,又不相交,输出值pOut又是什么?
我不知道线段是否和平面平行,我该怎样写代码找到如果有交点时交点的坐标?

------解决方案--------------------
pOut
[in, out] Pointer to a D3DXVECTOR3

pOut既是入参,也是出参(函数返回值)。

我的问题在最后一行:它说“如果线段与平面平行,函数将返回NULL”,这种情况下输出值是什么?
// 既然平行,自然没有交点,能有什么输出呢?

如果线段与平面不平行,又不相交,输出值pOut又是什么?
// 线段和平面不平行,那么一定相交。

D3DXPlaneIntersectLine(
  D3DXVECTOR3 * pOut,
  CONST D3DXPLANE * pP,
  CONST D3DXVECTOR3 * pV1,
  CONST D3DXVECTOR3 * pV2
);

D3DXVECTOR3 out;
D3DXPLANE P;
D3DXVECTOR3 V1, V2;

if (D3DXPlaneIntersectLine(&out, &P, &V1, &V2)) // 有交点
{
   // out就是交点,对其进行处理
}
else // 没有交点
{
  // 做没有交点的处理
}