/// <summary>
 /// �õ���άƫ���������ָ��
 /// </summary>
 /// <param name="pSrc">Դָ��</param>
 /// <param name="idx1">[1]����ֵ</param>
 /// <param name="PointerOffset1">[1]ָ��ƫ�Ʊ�������</param>
 /// <param name="idx2">[2]����ֵ</param>
 /// <param name="PointerOffset2">[2]ָ��ƫ�Ʊ�������</param>
 /// <param name="idx3">[3]����ֵ</param>
 /// <param name="PointerOffset3">[3]ָ��ƫ�Ʊ�������</param>
 /// <returns>�������ָ��</returns>
 public static unsafe byte* ItfPtr3D(byte* pSrc,
     int idx1, IPointerOffset PointerOffset1,
     int idx2, IPointerOffset PointerOffset2,
     int idx3, IPointerOffset PointerOffset3)
 {
     Debug.Assert(null != PointerOffset1, "PointerOffset1 is null!");
     Debug.Assert(null != PointerOffset2, "PointerOffset2 is null!");
     Debug.Assert(null != PointerOffset3, "PointerOffset3 is null!");
     byte* p = pSrc;
     if (PointerOffset1.PtrEx(out p, p, idx1))
     {
         if (PointerOffset2.PtrEx(out p, p, idx2))
         {
             if (PointerOffset3.PtrEx(out p, p, idx3))
             {
                 //
             }
         }
     }
     return p;
 }
 /// <summary>
 /// �õ�һάƫ���������ָ��
 /// </summary>
 /// <param name="pSrc">Դָ��</param>
 /// <param name="idx1">[1]����ֵ</param>
 /// <param name="PointerOffset1">[1]ָ��ƫ�Ʊ�������</param>
 /// <returns>�������ָ��</returns>
 public static unsafe byte* ItfPtr1D(byte* pSrc, int idx1, IPointerOffset PointerOffset1)
 {
     Debug.Assert(null != PointerOffset1, "PointerOffset1 is null!");
     return PointerOffset1.Ptr(pSrc, idx1);
 }