When my 'Options' dialog loads up the first time the control for the 'default save path' is empty.
I've tried to use the GetTempDirectory API to fill it upon initialization but I must be doing something wrong.
After selecting the 'browse' button and seleting the default path once everything works as I expected.

Here is my code
Code:
BOOL CALLBACK OptionsProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
	CoInitialize(0);

	static char szDirectory[MAX_PATH];
	HRESULT hr;
	BROWSEINFO browseInfo;
	LPITEMIDLIST lpItemList=0;

	LPMALLOC lpM;
	hr = SHGetMalloc (&lpM) ;
	if (FAILED(hr) ) return 0;

	ZeroMemory ( (PVOID) &browseInfo,sizeof (BROWSEINFO));
  
  	browseInfo.pidlRoot = 0;
	browseInfo.hwndOwner = NULL;
	browseInfo.pszDisplayName = szDirectory;
	browseInfo.lpszTitle = "Open Folder ";
	browseInfo.ulFlags = BIF_RETURNFSANCESTORS|BIF_RETURNONLYFSDIRS;
	browseInfo.lParam = 0;


	switch (Message)
	{
	case WM_INITDIALOG:
		//  Try to set text to default path... Not working!
		if(pTempDirectoryPath[0] != NULL)// if already set just display it.
		{
			hdlg = GetDlgItem(hwnd,IDC_OUTPUT_FILES_LOCATIONS);
			SetWindowText (hdlg, pTempDirectoryPath[0]);
		}
		else //(pTempDirectoryPath[0]) *** 
/***************shouldn't this set it?*************/
		{
			char TempDirectoryPath[MAX_PATH+1];
			GetTempPath(MAX_PATH+1, TempDirectoryPath); 
			//pTempDirectoryPath[0] = &TempDirectoryPath[0];
			//SetWindowText (hdlg, pTempDirectoryPath[0]);
			SetWindowText (hdlg, TempDirectoryPath);
		}

		if(bSaveComposite)	// If radio button is set,
		{
			hdlg = GetDlgItem(hwnd,IDC_OPTIONS_SAVE_COMPOSITE );
			SendMessage(hdlg, BM_SETCHECK, 1,0);
		}
		else	// set other button.
		{
			hdlg = GetDlgItem(hwnd,IDC_OPTIONS_SAVE_ALL );
			SendMessage(hdlg, BM_SETCHECK, 1,0);
			bSaveComposite = FALSE;
		}
		return TRUE;
	case WM_COMMAND:
switch (LOWORD(wParam))
		{
		case IDOK:
			// checks to see if radio save_all is set, if so change BOOL.
			if(SendMessage(GetDlgItem(hwnd,IDC_OPTIONS_SAVE_ALL ), BM_GETCHECK, 
				(WPARAM)0 ,(LPARAM)0) == BST_CHECKED)
				bSaveComposite = FALSE;
			EndDialog(hwnd, IDCANCEL);
			break;
		case IDBROWSE:
			if ((lpItemList = SHBrowseForFolder(&browseInfo)) == NULL)
			{
				return 0;
			}
			SHGetPathFromIDList(lpItemList,szDirectory); 
			
			hdlg = GetDlgItem(hwnd,IDC_OUTPUT_FILES_LOCATIONS);
			pTempDirectoryPath[0] = szDirectory;	
			SetWindowText (hdlg, pTempDirectoryPath[0]);
			lpM->Free(lpItemList);
			lpM->Release();
			break;
		case IDCANCEL:
			MessageBeep (0);
			EndDialog(hwnd, IDCANCEL);
			break;
		}
		default:
            return FALSE;
	}
	return TRUE;
}
All the other cases in my code seems to work I just posted them for clarity.