How to make a hollow node with PointSymbol=o?

\documentclass[12pt,border=15pt,pstricks]{standalone}
\usepackage{pst-eucl} 

\begin{document}
\begin{pspicture}[showgrid,PointSymbol=none](-1,-3)(11,5)
\pstGeonode[PointName=none](2,4){A}(0,0){B}(6,0){C}
\pstCircleABC[PosAngle=180]{A}{B}{C}{O}
\pstGeonode[PosAngle=60](10,2){M}
\pstMiddleAB[PointName=none]{O}{M}{M'}
\pstInterCC[DiameterB=\pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
{\psset{nodesepB=-1} \pstLineAB{M}{D}\pstLineAB{M}{E}}
\ncLine{O}{D}\ncLine{O}{E}
\pstInterLL[PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
\pstRightAngle[RightAngleSize=.2]{D}{H}{M}
\ncLine{O}{M} 
\ncLine{D}{E}
\psset{fillcolor=white,fillstyle=solid}
\pscircle(D){3pt}
\pscircle(E){3pt}
\pscircle(M){3pt}
\end{pspicture}
\end{document}

enter image description here

Simpler version

\documentclass[12pt,border=15pt,pstricks]{standalone}
\usepackage{pst-eucl,pstricks-add}

\def\r{\pscalculate{sqrt(10)}}
\begin{document}
\begin{pspicture}[showgrid,PointSymbol=none](12,8)
    \pstGeonode[PosAngle={180,90}](4,4){O}(11,5){M}
    \pscircle(O){\r}
    \psCircleTangents(M)(O){\r}
    \pstGeonode[PosAngle={45,-45}](CircleT1){D}(CircleT2){E}
    \pstMiddleAB[PosAngle=-45]{D}{E}{H}
    \pstRightAngle[RightAngleSize=.2]{D}{H}{M}
    \pspolygon(O)(D)(M)(E)
    \psline{-o}(O)(M)
    \psline{o-o}(D)(E)
\end{pspicture}
\end{document}

enter image description here


\documentclass[12pt,border=15pt,pstricks]{standalone}
\usepackage{pst-eucl} 

\begin{document}
\begin{pspicture}[showgrid,PointSymbol=none,dotsize=0.2](-1,-3)(11,5)
    \pstGeonode[PointName={none,none,none,M}](2,4){A}(0,0){B}(6,0){C}(10,2){M}
    \pstCircleABC[PosAngle=180]{A}{B}{C}{O}
    \pstMiddleAB[PointName=none]{O}{M}{M'}
    \pstInterCC[DiameterB=\pstDistAB{O}{M},PosAngleA=45,PosAngleB=-45]{O}{A}{M'}{}{D}{E}
    \ncLine{O}{M}    \ncline[nodesepB=-1]{M}{D} \ncline[nodesepB=-1]{o-}{M}{E}
    \psline(D)(O)(E) \ncLine{o-o}{D}{E} 
    \pstInterLL[PosAngle=50,PointNameSep=.55]{O}{M}{D}{E}{H}
    \pstRightAngle[RightAngleSize=.2]{D}{H}{M}
\end{pspicture}
\end{document}

enter image description here


For comparison: a TikZ version without tkz-euclide and the like.

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{calc,through}
\tikzset{circle through 3 points/.style n args={3}{% https://tex.stackexchange.com/a/461180/121799
insert path={let    \p1=($(#1)!0.5!(#2)$),
                    \p2=($(#1)!0.5!(#3)$),
                    \p3=($(#1)!0.5!(#2)!1!-90:(#2)$),
                    \p4=($(#1)!0.5!(#3)!1!90:(#3)$),
                    \p5=(intersection of \p1--\p3 and \p2--\p4)
                    in },
at={(\p5)},
circle through= {(#1)}
}}

\begin{document}
    \begin{tikzpicture}[bullet/.style={circle,draw,fill=white,inner sep=1pt}]
    \path (2,4) coordinate(A) (0,0) coordinate(B) (6,0) coordinate(C) (10,2)
    node[bullet,label=above:$M$](M){};
    \node[circle through 3 points={A}{B}{C},draw] (c){};
    \draw[shorten <=-1cm] 
    (tangent cs:node=c,point={(M)},solution=1) node[bullet,label=above:$D$](D){}
    -- (M) ;
    \draw[shorten <=-1cm] (tangent cs:node=c,point={(M)},solution=2) 
       node[bullet,label=below:$E$] (E){} -- (M);
    \draw (D) -- (c.center) node[bullet,label=left:$O$] (O){} -- (E) -- (D);
    \draw (O) -- (M);
    \path (intersection cs:first line={(D)--(E)}, second line={(O)--(M)})
    node[bullet,label=above right:$H$] (H){};
    \draw ($(H)!2mm!(M)$) coordinate(aux) --  ($(aux)!2mm!-90:(M)$)
    -- ($(H)!2mm!(E)$); 
\end{tikzpicture}
\end{document}

enter image description here