Приветсвую!

Есть следующий код:
## Код:
```
PROCEDURE ChDir*;
VAR 
   res : WinApi.BOOL;
   path : PATH_STR;
   apath: WinApi.PtrSTR;
   void: WinApi.PtrVoid;
   addr: INTEGER;
BEGIN
   void := 0;
   res := 0;   
   apath := NIL;
   path :=  "\bin32";
   PMD_PATH := "D:\PMDPC\";
   path := PMD_PATH + path;   
   void:= WinApi.LocalAlloc(WinApi.LPTR, 512 * SIZE(SHORTCHAR));
   [b]SYSTEM.PUT(SYSTEM.ADR(apath), void);[/b]
        [b](*apath := SYSTEM.VAL(WinApi.PtrSTR, void)*)[/b]
   ConvStrAPI(path, apath);
   StdLog.String(path$);StdLog.Ln;
   res := WinApi.SetCurrentDirectory(apath);
   void := WinApi.LocalFree(void);
END ChDir;
```

Пробовал 2 варианта преобразований (выделены жирым). Но ни один из них не работает. Переменная apath  всегда NIL.

Собственно суть вопроса: Как правильно приводить указатели WinApi.PtrVoid  к любому другому указателю из модуля WinApi?